怎么解决,求帮助。
被调函数部分怎么解决
子函数遍历每个元素,该元素与数组前面的元素进行比较,不同则放到数组头,相同则忽略。
#include <iostream>
using namespace std;
int fun(char *s)
{
int i=0,j=0,k=0,num=0;
while(s[i] != 0)
{
for(k=0;k<j;k++)
{
if(s[k] == s[i])
{
num++;
break;
}
}
if(k==j)
s[j++] = s[i];
i++;
}
s[j]= 0;
return num;
}
int main()
{
char s[100];
gets(s);
cout<<"删除字符数量:"<<fun(s)<<endl;
cout<<s;
return 0;
}
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int bingo(string& str) {
unordered_map<char, int> map;
string tmp;
for (char c : str) {
map[c]++;
if (map[c] > 1)
continue;
tmp += c;
}
str = tmp;
return str.size();
}
int main()
{
string s;
cin >> s;
int n = bingo(s);
cout << n << ":" << s;
}