真题集P114---2016年真题

真题集P114---2016年真题

第四题

在这里插入图片描述

思路

1、问什么:给你一个串,看看符不符合他的要求,即串的合法性
2、怎么解:我们不难发现,这个题有很多的失败情况,但是只针对一个字符而言,正确的情况很少
3、只要这个点处输入的是正确的就可以继续走反之这个串必不合法
4、再结合"3"中所说,所以只需要判断正确情况就行,不满足一定出错

这也是以后编代码的一种思路,我们只需要判断条件少的部分,不满足的那些自然就全属于对立面了,这样会让编程简化,我们只处理少的判断即可!!!

代码

#include <iostream>
#include <string>
#include <stack>
#include <queue>
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;
void function_one() {

void function_four() {
	string item;
	cin >> item;
	int n = item.size();
	int i = 0;
	int turn = 1;//1代表机器人1 -1代表机器人2
	while (i < n) {//这道题正确情况少,错误情况多,所以每次判断到一个字符,只需要看它符不符合正确情况的定义即可,余下的必错
		if (turn == 1 && i + 1 < n && (item[i] == 'Y' || item[i] == 'N')) {//M1说话,说的是Y或N才行,并且不能是对话结尾
			i++;
			continue;
		}
		if (turn == -1 && i + 1 < n && (item[i] == 'y' || item[i] == 'n')) {//M2说话,说的是y或n才行,并且不能是对话结尾
			i++;
			continue;
		}
		if (turn == 1 && item[i] == '2') {//M1说话,说的是数字必须是2,如果是结尾,也必须到这里看看是不是数字
			turn *= -1;//交换说话次序
			i++;
			continue;
		}
		if (turn == -1 && item[i] == '1') {//M1说话,说的是数字必须是1,如果是结尾,也必须到这里看看是不是数字
			turn *= -1;//交换说话次序
			i++;
			continue;
		}
		cout << "该串不合法";//所有的错误情况,有一处错了就必然不是合法串
		return;
	}
	cout << "该串合法";
	return;
	
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JLU_LYM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值