CSP-J 学习笔记 Day1
第一题 字母
【问题描述】
自从吃了2018年普及组第一题的亏,凯凯决定好好练习字符串的相关算法。他现在想把一个字符串中的大写字母变成小写字母,小写字母变成大写字母。请问凯凯应该如何做?
【输入格式】
输入文件名为
输入包括1行,包含若干个单词,单词间用空格隔开,单词可能由小写字母、大写字母以及数字和标点符号组成。
【输出格式】
输出文件名为
输出文件只有 1 行,包含一个字符串,即为变换后的字符串。
思路&做法
由于有空格,用getline读进一行字符串,再写出以下代码:
for(int i=1;i<s.size();i++){
if(s[i]==' ')
continue;
else if(s[i]>='A'&&s[i]<='Z')
s[i]+=32;
else if(s[i]>='a'&&s[i]<='z')
s[i]-=32;
}
记得要getline
第二题 猜硬币
【问题描述】
凯凯和贝贝在玩猜硬币的游戏,游戏规则是这样的:凯凯将三个杯子倒扣在桌子上,然后在贝贝看不见的情况下将一枚硬币藏入其中一个杯子。
之后,凯凯连续选择两个杯子交换若干次,每次交换后,由贝贝猜测硬币在哪个杯子中。
交换完毕后,贝贝的得分就是猜对硬币的次数。
现在请你计算贝贝最高可能获得的分数。
【输入格式】
输入文件名为
输入文件的第一行,包含一个正整数
接下来的
【输出格式】
输出文件名为
输出文件有 1行,包含一个整数,代表贝贝可能的最高得分。
思路&做法
开辟一个数组pos赋值为{0,1,2,3,0,0,0,0};
两重
有点Longest Increasing Sequence? 我觉得就是