我只是想知道这个问题是否有任何其他逻辑:问题:查找给定字符串中的对数并输出所有对和未配对元素的总和。PS:输入区分大小写。
示例 O/P:
eeqe 3
啊啊2
rwertr 5
我通过首先对输入字符串进行排序然后比较相邻元素来找到解决此问题的方法,如下面的代码所示:
int main()
{
int t,count=0,pos=0;
char swap;
char a[201];
cin>>a;
int len=strlen(a);
//cout<<a<<endl;
for (int c = 0 ; c < ( len - 1 ); c++)
{
for (int d = 0 ; d < len - c - 1; d++)
{
if (a[d] > a[d+1]) /* For decreasing order use < */
{
swap = a[d];
a[d] = a[d+1];
a[d+1] = swap;
}
}
}
//cout<<a<<endl;
count=0;
for(int i=0;i<len;){
if(a[i]==a[i+1]){
count++;
i+=2;
//if(i== len-2)i++;
}
else{ count++; i++;}
}
//if(a[len-1]!=a[len-2])count++;
cout<<count<<endl;
return 0;
}
这段代码工作正常。但是,我只是想知道是否有任何其他有效的解决方案不涉及对整个输入数组进行排序。