描述有一天一只蚱蜢像往常一样在草地上愉快地跳跃它发现了一条写满了英文字母的纸带。蚱蜢只能在元音字母A、E、I、O、U、Y间跳跃一次跳跃所需的能力是两个位置的差。纸带所需的能力值为蚱蜢从纸带开头的前一个位置根据规则跳到纸带结尾的后-个位置的过程中能力的最大值。蚱蜢想知道跳跃纸带所需的能力值最小是多少。如图所示的纸带所需的能力值最小是4。931fe220d5e33169e0b1bc4f820ecb34
#include
int main() { string s; cin >> s;
int minAbility = 0; // 最小能力值
int prevVowelPos = -1; // 上一个元音字母的位置
for (int i = 0; i < s.length(); i++) {
if (s[i] == 'A' || s[i] == 'E' || s[i] == 'I' || s[i] == 'O' || s[i] == 'U' || s[i] == 'Y') {
int ability = i - prevVowelPos; // 当前位置和上一个元音字母的位置的差值
if (ability > minAbility) {
minAbility = ability;
}
prevVowelPos = i; // 更新上一个元音字母的位置
}
}
// 最后一个元音字母后面的位置到纸带结尾的位置的差值
int ability = s.length() - prevVowelPos;
if (ability > minAbility) {
minAbility = ability;
}
cout << minAbility << endl;
return 0;
原文地址: http://www.cveoy.top/t/topic/iPgG 著作权归作者所有。请勿转载和采集!