C++ string 搞定,真的没什么好说的
#include<string>
#include<iostream>
using namespace std;
int ctoi(char ch)
{
return ch-'0';
}
char itoc(int i)
{
return i+'0';
}
string twice(string s)
{
int i=s.size()-1;
int sum=0,add=0;
string ns="0";
for(;i>=0;i--)
{
sum=ctoi(s[i])*2+add;
s[i]=itoc(sum%10);
add=sum/10;
}
if(add)
{
ns[0]=itoc(add);
s=ns+s;
}
return s;
}
string countnum(string s)
{
int i=0,j=s.size();
string num="0000000000";
for(;i<j;i++)
num[ctoi(s[i])]++;
return num;
}
int main()
{
string s;
cin>>s;
if(countnum(s)==countnum(twice(s)))
cout<<"Yes\n"<<twice(s)<<endl;
else
cout<<"No\n"<<twice(s)<<endl;;
return 0;
}
本文深入探讨了C++中字符串的高效处理方法,包括字符串翻倍、数字计数等高级应用,并通过实例代码展示如何实现这些功能。

被折叠的 条评论
为什么被折叠?



