思路:利用set去重,然后对于set中的每个字符串,删除set中与其后缀重复的字符串。
class Solution {
public:
int minimumLengthEncoding(vector<string>& words) {
unordered_set<string>myset(words.begin(), words.end());//利用迭代器构造set对象(自动去重)
for (const string& s : myset)
{
for (int i = 1; i < s.size(); i++)
{
myset.erase(s.substr(i));
}
}
int len = 0;
for (auto it = myset.begin(); it != myset.end(); it++)
{
len += (*it).size() + 1;
}
return len;
}
};
string s = "abcde";
cout << s.substr(1);//返回的是string类的对象,结果为bcde