找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 390|回复: 1

删除重复字符

[复制链接]

14

主题

65

回帖

0

积分

新手上路

积分
0
发表于 2013-7-1 23:07:53 | 显示全部楼层 |阅读模式
给定一个字符串,将字符串中所有和前面重复多余的字符删除,其余字符保留,输出处理后的字符串。需要保证字符出现的先后顺序,并且区分大小写。
接口说明
原型:
int GetResult(const char *input, char *output)
输入参数:
input     输入的字符串
输出参数(指针指向的内存区域保证有效):
output    输出的字符串
返回值:
0         成功
-1       失败及异常
举例:
输入: abadcbad,那么该单词中红色部分的字符在前面已经出现过。
则:输出abdc,返回0。

0

主题

7

回帖

0

积分

新手上路

积分
0
发表于 2013-7-4 22:56:15 | 显示全部楼层
死方法:(唐老师的O(0)解法是啥啊?)
  1. int GetResult(const char *input, char *output)
  2. {
  3. int ret=-1;
  4. int condition=1;
  5. int i,len,j,k=0;
  6. len=strlen(input);
  7. condition = condition&&(input!=NULL)&&(output!=NULL);
  8. if(condition)
  9. {
  10.   for(i=0;i<len;i++)
  11.   {
  12.    for(j=0;j<k;j++)
  13.    {
  14.     if(output[j]==input[i])
  15.      break;
  16.    }
  17.    
  18.    if (j==k)
  19.    {
  20.       
  21.     output[k++]=input[i];
  22.    }      
  23.    
  24.    
  25.   }
  26. output[k]=&#39;\0&#39;;
  27. ret=0;
  28.   
  29. }
  30. return ret;
  31. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

果子博客
扫码关注微信公众号

Archiver|手机版|小黑屋|风叶林

GMT+8, 2026-2-1 12:26 , Processed in 0.083529 second(s), 20 queries .

Powered by 风叶林

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表