-
删除重复字符
-
给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串。需要保证字符出现的先后顺序,并且区分大小写。
详细描述:
-
接口说明
原型:
int GetResult(const char *input, char *output)
输入参数:
input 输入的字符串
输出参数(指针指向的内存区域保证有效):
output 输出的字符串
返回值:
0 成功
-1 失败及异常
举例:
输入: abadcbad,那么该单词中红色部分的字符在前面已经出现过。
则:输出abdc,返回0。
#include <iostream>
#include <string>#include <set>
using namespace std;
int GetResult(const char *input, char *output)
{
if( input == NULL || output == NULL)
return 0;
set<char> sett;
int i = 0;
int j = 0;
while( input[i++] != '\0' )
{
if(sett.count(input[i]) == 0)
{
sett.insert(input[i]);
output[j++] = input[i];
}
}
output[j] = '\0';
return 1;
}
int main()
{
char *s = NULL;
char *r = NULL;
string ss;
cin>>ss;
s = new char[ss.size() +1];
r = new char[ss.size() +1];
for( int i = 0;i<ss.size();i++)
s[i] = ss[i];
s[ss.size()] = '\0';
int flag = GetResult(s,r);
if(flag == 1) cout<<r<<endl;
return 0;
}