200330题(820.单词的压缩编码(set))

在这里插入图片描述
思路:利用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
发布了241 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ShenHang_/article/details/105159389