1WA 4RE 悬赏关注
查看原帖
1WA 4RE 悬赏关注
1378097
zjinyi楼主2025/2/4 21:22
#include <iostream>
using namespace std;

string word[2000002];
int alpha[30], pos[2000002];

int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; ++i)
	{
		cin >> word[i];
		pos[i] = pos[i - 1] + word[i].size();
	}
	int l = 1, minn = 1e6 + 2, cnt = 0;
	for (int i = 1; i <= n; ++i)
	{
		for (int j = 0; j < word[i].size(); ++j)
		{
			alpha[word[i][j] - 'a'] += 1;
			if (alpha[word[i][j] - 'a'] == 1)
			{
				cnt += 1;
			}
		}
		while (cnt == 26)
		{
			for (int j = 0; j < word[l].size(); ++j)
			{
				alpha[word[l][j] - 'a'] -= 1;
				if (alpha[word[l][j] - 'a'] == 0)
				{
					cnt -= 1;
				}
			}
			l += 1;
		}
		for (int j = 0; j < word[l].size(); ++j)
		{
			alpha[word[l][j] - 'a'] += 1;
			if (alpha[word[l][j] - 'a'] == 1)
			{
				cnt += 1;
			}
		}
		l += 1;
		if (cnt == 26)
		{
			minn = min(minn, pos[i] - pos[l - 1] + 1);
		}
	}
	cout << minn; 
	
	return 0;
}

照着老师代码写的

2025/2/4 21:22
加载中...