【2022寒假萌新训练-1】7-4 输出字符串中出现的字符
输入一个字符串(包括大小写字母和空格),除去空格输出在字符串中出现过的字符。
输入格式:输入一个字符串
输出格式:输出在字符串中出现过的字符,每个字符打印一次,按字母顺序打印(注意:空格不算,大小写字符算不同字符)。打印时按字母的顺序,大写在前,小写在后。
输入样例:在这里给出一组输入。例如:
1This is a good hat
输出样例:在这里给出相应的输出。例如:
1Tadghiost
思路题目给定字符串带空格,使用getline输入
遍历字符串,利用数组记录各个字符出现的次数
再按照题目要求先输出大写,再输出小写即可
代码1234567891011121314151617181920212223#include <iostream>using namespace std;int main() { string str; getline(cin, str); //带空格输入 int book[200] = {0}; //0 for(int i = 0; i < (int)str.size(); i++) ...
【2022寒假萌新训练-1】7-3 日期格式化
世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。
输入格式:输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。
输出格式:在一行中按照“yyyy-mm-dd”的格式给出年、月、日。
输入样例:103-15-2017
输出样例:12017-03-15
思路题目保证输入格式为mm-dd-yyyy,利用scanf作格式控制
代码12345678910#include <iostream>using namespace std;int main() { int a, b, c; scanf("%d-%d-%d", &a, &b, &c); printf("%04d-%02d-%02d\n", c, a, b); return 0;}
【2022寒假萌新训练-1】7-7 校验ISBN-10编码
图书使用国际标准书号(International Standard Book Number (ISBN-10))来编码,是一个 10 位码。前 9 位(0−9之间的数字)分别用于表示语言、出版商和 图书信息。第 10 位是校验位,可以是0−9之间的数字或者是字母 X (用于表示数字10);
ISBN-10码可以通过下面方法进行验证:
首先,对ISBN-10码的各个位按下面的计算式求和: 1×x1+2×x2+3×x3+4×x4⋯+9×x9+10×x10
将求和的结果对11取余数,如果余为0,则说明该ISBN-10码是一个有效码,否则,就不是一个有效的ISBN-10码。
现输入一批ISBN-10图书编码,请你验证该编码是否是有效的国际标准书号。
输入格式:输入第一行给出正整数N(≤10)是输入的ISBN-10图书编号的个数。随后N行,每行给出1个10位的ISBN-10图书编号。
输出格式:按照输入的顺序每行输出1个有问题的ISBN-10编码。这里并不检验前9位是否合理,只检查前9位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出 All passed。
输入样例01:1 ...
【2022寒假萌新训练-1】7-1 求一个三位正整数各位数字之和
求一个三位正整数各位数字之和
输入样例:1678
输出样例:121
思路题目保证是一个三位数,可利用scanf控制输入格式
代码12345678910#include <iostream>using namespace std;int main() { int a, b, c; scanf("%1d%1d%1d", &a, &b, &c); cout << a + b + c << endl; return 0;}
【2022寒假萌新训练-1】7-2 求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:输入在一行中给出一个不超过109的正整数N。
输出格式:在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:1321
输出样例:13 6
思路题目输入的正整数很大,可当作字符串处理,当然也作为long类型输入
若作为字符串处理,即输出字符串的长度和每位的累加和(字符转为数字)
代码1234567891011121314#include <iostream>using namespace std;int main() { string str; cin >> str; int ret = 0; for(int i = 0; i < (int)str.size(); i++) { ret = ret + (str[i] - '0'); //字符转为数字,注意一定要加括号 } cout << str.size() << " " << ret << endl ...
【2022寒假萌新训练-1】7-6 单词加密解析
输入一个英文单词(由六个小写英文字母组成),按照下列过程将该单词加密:先将英文单词中的小写字母转换为对应的大写字母,再将该大写字母的ASCII码对10整除后取其余数,从而得到一个六位整数密码。
输入格式:输入在一行中给出1个由六个小写英文字母组成的英文单词。
输出格式:按照规则转换成一个六位整数密码,并输出转换的过程。
输入样例:1friday
输出样例:123456f->F->0r->R->2i->I->3d->D->8a->A->5y->Y->9
思路在ASCII代码表中每一个大写字母比它相应的小写字母的ASCII码小32
ASCII范围:a-z:97-122 A-Z:65-90
代码123456789101112#include<iostream>using namespace std;int main() { string s; cin >> s; for(int i = 0; i < (int)s.size(); i++) { ...
【2022寒假萌新训练-1】7-5 A-B
本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。
输入格式:输入在2行中先后给出字符串A和B。两字符串的长度都不超过104,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
输出格式:在一行中打印出A−B的结果字符串。
输入样例:12I love GPLT! It's a fun game!aeiou
输出样例:1I lv GPLT! It's fn gm!
思路遍历第二个字符串,利用数组标记出现的字符,再遍历第一个,若数组对应位置大于0则不输出
代码123456789101112131415161718192021#include <iostream>using namespace std;int main() { string t1; getline(cin, t1); string t2; getline(cin, t2); int book[200] = {0}; ...
【2022每日分享day03】《艾伦·图灵传:如谜的解谜者》
河北大学2022寒假萌新程序设计训练每日知识分享-day03
每日分享——《艾伦·图灵传:如谜的解谜者》作者是[英]安德鲁·霍奇斯,电影《模仿游戏》就是由此改编。在这本书中,你将会看到一个天才复杂而又孤独的一生。图灵出身于英国的一个中产阶级家庭,祖辈有着良好的教育背景,虽然自幼聪慧,但天生的“不合群”性格却让他在早期的学生时期举步维艰。随着考入剑桥,图灵的数学能力得到了充分的发展,他的天才人生也就此起飞:1935年构想出后来被世人称为“通用图灵机”的抽象设备,1940年二战期间破解德国著名密码系统Enigma,1945年设计ACE。1950年,图灵编写并出版了《曼彻斯特电子计算机程序元手册》,为后来的人工智能科学提供了开创性构思。同年,他发表论文《计算机和智能》,提出了“模仿游戏”(即著名的“图灵测试”)。图灵的机器智能思想无疑是人工智能的直接起源之一。而且随着人工智能领域的深入研究,人们越来越认识到图灵思想的深刻性:它们如今仍然是人工智能的主要思想之一。
【2022寒假精进训练-1】7-10 悄悄关注
新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。
输入格式:输入首先在第一行给出某用户的关注列表,格式如下:
1人数N 用户1 用户2 …… 用户N
其中N是不超过5000的正整数,每个用户i(i=1, …, N)是被其关注的用户的ID,是长度为4位的由数字和英文字母组成的字符串,各项间以空格分隔。
之后给出该用户点赞的信息:首先给出一个不超过10000的正整数M,随后M行,每行给出一个被其点赞的用户ID和对该用户的点赞次数(不超过1000),以空格分隔。注意:用户ID是一个用户的唯一身份标识。题目保证在关注列表中没有重复用户,在点赞信息中也没有重复用户。
输出格式:我们认为被该用户点赞次数大于其点赞平均数、且不在其关注列表上的人,很可能是其悄悄关注的人。根据这个假设,请你按用户ID字母序的升序输出可能是其悄悄关注的人,每行1个ID。如果其实并没有这样的人,则输出“Bing Mei You”。
输入样例:123 ...
【2022寒假精进训练-1】7-6 最长对称子串
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11。
输入格式:输入在一行中给出长度不超过1000的非空字符串。
输出格式:在一行中输出最长对称子串的长度。
输入样例:在这里给出一组输入。例如:
1Is PAT&TAP symmetric?
输出样例:在这里给出相应的输出。例如:
111
思路利用双指针的思想,分别从字符串的前后进行比较,每次发现相同的就截取子串,做对称比较并更新最大长度。
代码12345678910111213141516171819202122232425#include <iostream>using namespace std;int main() { string s; getline(cin, s); int mlen = 0, clen = 0; for (int i = 0; s[i] != '\0'; i++) { for (int j = s.length() - 1; ...







