当前位置: 首页 > news >正文

PAT——7-4 简易测谎 (20 分)

测谎通常使用一套准备好的问题提问被测试者,通过分析被测试者的反应得到结果。比较高级的测谎技术会使用测谎仪,监视被测试者的生理活动状况。我们这里的简易测谎则是通过对问题答案的特征分析来做出判断。

首先我们要求被测试者做完 N 道单选题,每道题有 8 个选项,由小写英文字母 a - h 来表示。这样就得到一个长度为 N 的、由 a - h 小写英文字母组成的字符串。对每个字符串打分,得分超过某个给定阈值 T 的就判断为“疑似说谎者”。打分原则如下:

以 f 开头的,得分 −2;
以 a 结尾的,得分 −1;
对于每一段长度大于 5 的连续选择同一字母的最长子串,得分 +3;
a 后面紧跟 e 或 h 的,得分 −4;
对于每一段长度大于 3 的连续选择相邻递增字母的最长子串(例如 abcd 或 defgh),得分 +5。
本题就请你写程序完成对被测试者的判断。

输入格式:
输入第一行给出 3 个正整数:N(6≤N≤100)为测谎问卷的题目数;T (≤100)为判断说谎的得分阈值;K(≤100)为被测试者人数。

随后 K 行,每行给出一个被测试者的答案字符串。

输出格式:
对每个被测试者的答案,在一行中输出其得分。如果分数超过阈值,则在其分数后输出 !!!。

输入样例:
12 1 6
fghaebcdeddd
ahhhhhhgbaaa
cdefffffffff
fffffghecaaa
feeeeeeeegcb
aaaaaabbbbbb
输出样例:
-1
-2
8!!!
-3
1
6!!!

 解题思路:按照题目给出的5个条件,逐条判断是否满足,然后进行分数的加减即可。

#include<bits/stdc++.h>
using namespace std;
int main()
{int n,t,k;cin>>n>>t>>k;for(int i=0;i<k;i++){int score = 0;string s;cin>>s;if(s[0]=='f')       //第一个条件 score=score-2;if(s[n-1]=='a')    //第二个条件  score=score-1;int j = 0;while(j<(int)s.length())  //第三个条件 {char c = s[j];	int x = j+1;while(s[x]==c)x++;if(x-j>5){score = score+3;}j = x;}for(int j=0;j<(int)s.length();j++)  //第四个条件 {if(s[j]=='a'&&(s[j+1]=='e'||s[j+1]=='h'))score = score-4;}	 for(int j=0;j<(int)s.length()-4;j++)  //第五个条件,只要超过4个就可以+5分 {if(s[j+1]==s[j]+1){if(s[j+2]==s[j+1]+1){if(s[j+3]==s[j+2]+1){score = score+5;}}}}if(score>t)cout<<score<<"!!!"<<endl;elsecout<<score<<endl;} 
}

 

http://www.lryc.cn/news/27246.html

相关文章:

  • 【力扣】 面试题 05.02.二进制数转字符串(超过c++100%)
  • 软件质量保证与测试 课堂笔记
  • Costco好市多验厂百问百答
  • Nginx 通过 header 中的标识进行分发
  • 如何实现《电子签名法》要求的可靠电子签名?
  • 工程项目管理软件有哪些?这六款很好用!
  • 多看看spdk代码学习
  • 宾语从句it做形式主语的句子
  • 【C#基础】C# 文件与IO
  • 死锁相关介绍【内含哲学家就餐问题】
  • Java的Groovy执行器内存泄露(MetaSpace)问题分析与解决办法
  • 【linux】进程信号——信号的产生
  • 部署OpenStack
  • Java 运算符与类型转化
  • 《C++ Primer Plus》第18章:探讨 C++ 新标准(2)
  • QML定时器
  • 第三章 opengl之纹理
  • 【Flink】FlinkSQL中执行计划以及如何用代码看执行计划
  • 从业者必读,一篇文章轻松掌握DevOps核心概念和最佳技能实践!
  • 2023爱分析·一体化HR SaaS市场厂商评估报告:北森
  • JAVA练习67-二叉树的中序遍历
  • 【JeecgBoot-Vue3】第1节 源码下载和环境安装与启动
  • WebAPI
  • Shell命令——date的用法
  • XSS跨站脚本
  • 【强烈建议收藏:MySQL面试必问系列之慢SQL优化专题】
  • windows,liunx,java实现apk解压,去签名、重新签名,重新打包apk
  • 【Linux】进程信号
  • SpringBoot 集成Junit单元测试
  • Android开发之简单控件