求解析字符串相邻去重的最快算法

用户输入一段字符,如:"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;
}