题目还要输出-1哟,你做到了吗
时间: 2024-04-16 10:27:30 浏览: 49
题目要求1
非常抱歉,我漏掉了输出-1的部分。下面是修正后的代码:
```cpp
#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
int findMaxL(string candies) {
int n = candies.size();
unordered_set<char> uniqueCandies; // 用于存储已经出现过的糖果分类
int left = 0, right = 0; // 窗口的左右边界
int maxL = -1; // 最大的L值
// 移动右边界,直到窗口大小满足要求
while (right < n) {
// 如果当前糖果分类已经出现过,则需要移动左边界
while (uniqueCandies.count(candies[right])) {
uniqueCandies.erase(candies[left]);
left++;
}
// 更新窗口状态
uniqueCandies.insert(candies[right]);
// 更新结果
maxL = max(maxL, right - left + 1);
// 移动右边界
right++;
}
if (maxL == 1) { // 如果最大的L值为1,说明没有相同的糖果分类
return -1;
}
return maxL;
}
int main() {
string candies;
cin >> candies;
int maxL = findMaxL(candies);
cout << maxL << endl;
return 0;
}
```
在更新结果maxL之后,我们增加了一段判断语句,如果最大的L值为1,则说明没有相同的糖果分类,返回-1。希望这次能满足您的需求。如果您还有任何问题,请随时提问。
阅读全文