0
点赞
收藏
分享

微信扫一扫

H106OJ_第二次测试_淘淘的名单

我阿霆哥 2022-03-26 阅读 50
c++

H106OJ_第二次测试_淘淘的名单:

提示:本文章为课程任务(学习记录)

本文章为课程第二次测试习题记录,仅供参考。


问题描述

题目:
淘淘拿到了一份名单,他想对上面的名字进行处理,挑出一些特殊的名字,他请你来帮忙。
淘淘关注以下名字:

如果这个名字是“WYS”,他希望你的程序输出“KXZSMR”。
如果这个名字是“CQ”,他希望你的程序输出“CHAIQIANG”。
如果这个名字是“LC“,他希望你的程序输出“DRAGONNET”。
如果这个名字是“SYT” 或 “SSD” 或 “LSS” 或 “LYF”,他希望你的程序输出“STUDYFATHER”。
如果这个名字与上述任意名字都不相同,他希望你的程序输出“DENOMINATOR”。

输入:
第一行有一个整数N,表示淘淘手中名单里的人数。
接下来N行,每行有一个字符串,即名单里的人名。

输出:
输出N行,每行输出每个人名的判断结果。


样例:


这道题目要求和提示很清晰,不做分析。

思路:

直接利用map容器,根据key索引value值
对于检查不存在map中的,可以设置函数,如果在预选名单中找到了目标,返回真值,否则返回假。
在map中设置一个pair形如{“DIFF”,“DENOMINATOR” }的对,对于假值,索引”DIFF“即可。
代码如下:


代码:

#include<iostream>
#include<map>
using namespace std;

int n;
string name[10];
map<string,string> m;

void init()
{
	m.insert({"WYS", "KXZSMR"});
	m.insert({"CQ", "CHAIQIANG"});
	m.insert({"LC", "DRAGONNET"});
	m.insert({"SYT", "STUDYFATHER"});
	m.insert({"SSD", "STUDYFATHER"});
	m.insert({"LSS", "STUDYFATHER"});
	m.insert({"LYF", "STUDYFATHER"});
	m.insert({"DIFF", "DENOMINATOR"});
	name[0] = "WYS", name[1] = "CQ", name[2] = "LC", name[3] = "SYT";
	name[4] = "SSD", name[5] = "LSS", name[6] = "LYF";
}

bool check(string str)
{
	for(int i = 0; i < 7; i ++)
		if(name[i] == str)
			return true;
	return false;
}

int main()
{
	init();
	cin >> n;
	while(n --)
	{
		string str;
		cin >> str;
		if(check(str))
			cout << m[str] << endl;
		else
			cout << m["DIFF"] << endl;
	}
	return 0;
}

Over,Bye~ 2022.03.26

举报

相关推荐

H106OJ_第二次测试_质数的后代

H106OJ_第二次练习_幸运数

H106OJ第二次练习

H106OJ_第二周总结

H106OJ_第三次练习_去注释

第二次网页

第二次作业

HCIP第二次实验

第二次java学习

0 条评论