使用栈先进后出的机制来消除相同元素。
1)第一次词要先全部入栈
2)之后的词从词开头与第一个词的词尾比较,出现不相等后后面的字符全入栈
3)注意字符串与字符的运算
string str ="";
str = str + 'a'; //ok
str += 'a'; //ng
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param Words string字符串vector * @return string字符串 */ string WordsMerge(vector<string>& Words) { // write code here stack<char> st; int n = Words.size(); // 第一个词 for (int i = 0; i < Words[0].size(); i++) { st.push(Words[0][i]); } for (int i = 1; i < n; i++) { string str = Words[i]; int m = str.size(); bool flag = true; for (int j = 0; j < m; j++) { if (flag && !st.empty() && st.top() == str[j]) { cout << st.top() <<endl; st.pop(); } else { st.push(str[j]); flag = false; } } } string res = ""; for (int i = st.size() - 1; i >= 0; i--) { res = res + st.top(); st.pop(); } reverse(res.begin(), res.end()); return res; } };