用户输入一段字符,如:"I am am happy today and you you are are are ok?"
输出"I am happy today and you are ok?"
解释:去掉相邻重复单词
'(.)\1+' 只能去掉单个重复单词求解最快算法
先把每个单词截断,成为一个集合。然后将这个集合循环放到另外一个新集合,在放的时候判断新集合中最后一个元素是否与当前要放的元素相同,不相同才放进去。
这样就实现了相邻去重,且只循环一次
正则表达式肯定不是“最快”
再开一个数组,一次扫描,记录下每个不重复开头的地址,再复制
创建两个用于寄存的字符串变量,输入每一个判断是否于前一个相等,不相等就输出
#include<iostream>
using namespace std;
int main()
{
string t1="\0",t2="\0";
while(cin>>t1)
{
if(t1!=t2)
cout << t1 << ' ';
t2 = t1;
}
return 0;
}