有两个测试点过不了
#include<iostream>
#include<string>
#include<map>
using namespace std;
map<char,int> mp1,mp2;
string Double(string x){
string str;
int t=0;//用来记录下一位的进位
for(int i=x.length()-1;i>=0;i--){
int k=x[i]-'0';
k=k*2+t;
int a=k%10;
str=to_string(a)+str;
t=k/10;//给下一位
}
return str;
}
int main(){
string str1;
cin>>str1;
for(int i=0 ;i<str1.length() ;i++)
mp1[str1[i]]++;
string str2 = Double(str1);
for(int i=0 ;i<str2.length() ;i++)
mp2[str2[i]]++;
map<char,int>::iterator it;
for(it=mp2.begin();it!=mp2.end();it++)
cout<<it->first<<it->second<<" ";
if(mp1 == mp2&&str1.length()==str2.length())
cout << "Yes";
else
cout << "No";
cout << endl << str2;
return 0;
}