从字符串中删除相同的相邻字符
2010-11-01 17:39
330 查看
题目:从字符串中删除相同的相邻字符。
初步实现:
进一步:
第二次用了模板,另外删除元素时用的代码也有差异,这是因为删除某个元素后其后的iterator有可能会invalidate,比如vector。
初步实现:
void remove_duplicate_adjacent(wstring &s) { wstring::iterator it1, it2; it1 = it2 = s.begin(); it2++; for (;it2 != s.end();) { if (*it1 == *it2) { s.erase(it2); } else { it1++; it2++; } } }
进一步:
template <class T> void remove_duplicate_adjacent(T &value) { T::iterator it1, it2; it1 = it2 = value.begin(); it2++; for (; it2 != value.end(); ) { if (*it1 == *it2) { it2 = value.erase(it2); } else { it1++; it2++; } } }
第二次用了模板,另外删除元素时用的代码也有差异,这是因为删除某个元素后其后的iterator有可能会invalidate,比如vector。
相关文章推荐
- 字符串处理的两个问题:删除指定字符,删除相邻相同的字符
- 删除字符串中相邻三个或以上重复的字符
- OC中删除字符串中相邻重复字符
- 算法系列(一) 删除字符串中的相同字符片段
- 删除一个字符串中相同的字符
- 编写算法,从字符串S中删除所有和字符串t相同的字符
- Delete characters删除两个字符串中相同的字符
- 面试题目(1)——删除与某个字符相邻且相同的字符
- 用java写关于删除一个字符串的字符以及删除一个字符串与另一个字符串中相同字符的问题
- 删除以个字符串中相同的字符
- 【原】完全删除字符串中连续相同的字符
- 将一字符串从小到大输出并删除多余相同的字符例如aaaabbbcc11122,输出12abc
- 定义一个字符串类DelSameStr,从左到右对字符串中每个字符删除其后所有相同的字符,只留下第一次出现的那一个
- 定义一个字符串类DelSameStr,从左到右对字符串中每个字符删除其后所有相同的字符,只留下第一次出现的那一个。例如,若字符串为”cocoon”,删除重复出现的字符后,其结果是字符串”con”
- 删除字符串中相邻三个或以上重复的字符
- c++sting类 在字符串中找相同的字符 并且把他删除
- 一道算法题---把字符串内连续相同字符删除
- 删除字符串中相同的字符
- 删除字符串中相临字符中两个相同的字符
- 删除一个字符串中相同字符