设为首页 加入收藏

TOP

字符串内部重复字符的去重
2014-11-24 01:40:38 来源: 作者: 【 】 浏览:4
Tags:字符串 内部 重复 字符

题目:给定一个字符串,里面会有连续重复出现的字符,比如aabbbcdde,要求把连续重复的字符只保留一个,比如上面的字符串处理之后就变成了abcde。


分析:用两个指针,p和q,让p指向当前结果所在的位置,q指向搜索到什么位置。一旦q指向了一个跟p所指字符不同的字符,那么p后移,将q指向的字符复制过来,继续向后搜索。
代码如下:


1 #include 2 using namespace std;
3
4 const int LEN = 100;
5
6 int
7 main()
8 {
9 char* str = new char[LEN];
10 if(str == NULL)
11 return 1;
12
13 cin >> str;
14 char* p = str;
15 char* q = str;
16 while(*q)
17 {
18 ++q;
19 if(*p != *q)
20 {
21 ++p;
22 *p = *q;
23 }
24 }
25 p++;
26 *p = *q;
27 cout << str;
28
29 delete str;
30
31 return 0;
32 }
33


测试用例:
a
aabbccd
abcde


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java中级开发工程师笔试试卷 下一篇Java开发工程师笔试题库之单选题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: