题目标题:
- 删除重复字符
- 给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串。需要保证字符出现的先后顺序,并且区分大小写。
详细描述:
- 接口说明
原型:
int GetResult(const char *input, char *output)
输入参数:
input 输入的字符串
输出参数(指针指向的内存区域保证有效):
output 输出的字符串
返回值:
0 成功
-1 失败及异常
举例:
输入: abadcbad,那么该单词中红色部分的字符在前面已经出现过。
则:输出abdc,返回0。
#include "OJ.h"
#include <vector>
#include <string>
using namespace std;
/*
Description
给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串。需要保证字符出现的先后顺序。
Prototype
int GetResult(const char *input, char *output)
Input Param
input 输入的字符串
Output Param
output 输出的字符串
Return Value
0 成功
-1 失败及异常
*/
int GetResult(const char *input, char *output)
{
if(input==NULL || output == NULL)
return -1;
vector<char> char_vec;
vector<char>::iterator it;
while(*input!='\0')
{
for(it=char_vec.begin();it!=char_vec.end();++it)
{
if(*it == *input)
{
break;
}
}
if(it == char_vec.end())
{
char_vec.push_back(*input);
*output++=*input;
}
++input;
}
*output='\0';
return 0;
}
一定要对输入的所有参数进行合法性检查,第一次只检查了input参数,没有检查output参数,导致运行异常!!!