当前位置:   article > 正文

C++KKT基本算法模拟算法【蚱蜢】_有一天,一只蚱蜢像往常一样在草地上愉快地跳跃,它发现了一条写满了英文字母的纸带

有一天,一只蚱蜢像往常一样在草地上愉快地跳跃,它发现了一条写满了英文字母的纸带

模拟算法 蚱蜢

描述

有一天,一只蚱蜢像往常一样在草地上愉快地跳跃,它发现了一条写满了英文字母的纸带。
蚱蜢只能在元音字母(A、E、I、O、U、Y)间跳跃,一次跳跃所需的能力是两个位置的差。纸带所需
的能力值为蚱蜢从纸带开头的前一个位置根据规则跳到纸带结尾的后-个位置的过程中能力
的最大值。
蚱蜢想知道跳跃纸带所需的能力值(最小)是多少。如图9.3-1所示的纸带所需的能力值(最小)是4。

输入

一行一个字符串,字符串长不超过100。

输出

一行一个整数,代表(最小)能力值。

理解

故名思其模拟意,意把差值按个记。

ANSWER

#include <iostream>
#include <string>
#include <cstring>
using namespace std;

int main()
{
	string str;
	getline(cin, str);
	int mmin = INT_MIN, tmp, last = 0;
	bool FLAG = false; 
	for (int i = 0; i < str.size(); i++)
	{
		if (str[i] == 'A' || str[i] == 'E' || str[i] == 'I' || str[i] == 'O' || str[i] == 'U' || str[i] == 'Y')
		{
			FLAG = true; 
			tmp = i - last;
			if (tmp > mmin)
				mmin = tmp;
			last = i;
		}
	}
	if (FLAG)
		cout << mmin << endl;
	else
		cout << str.size() + 1 << endl;
	return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/393138
推荐阅读
相关标签
  

闽ICP备14008679号