杭电2021-2027总结

来源:互联网 发布:如何调试动态加载的js 编辑:程序博客网 时间:2024/04/29 20:19

2021:每个测试用例有n个老师,建立一个循环(有n个循环体)处理一个测试用例,准备人民币的原则是能用大纸就用大纸。

2022:这个在二维数组里找最大元素,依然使用“擂台法”,其实不需要建立一个二维数组,只要每输入一个数据就和“擂台”上的数据比较就可以了。

2023:这题是熟悉使用二维数组,只要清楚每个循环是遍历什么变量,编程的思路就清晰了。

2024:把实际问题逻辑化,虽然本题很简单,但是可以启发解决此类问题的思路。首先把所有字符串分成两类,一是只含字母、数字或者下划线;二是其它。

再把第一类分类,一是首字符不是数字(合法),二是首字符是数字。对于别的问题中更复杂的逻辑关系,可以用树形图和韦恩图帮助分析。

PS:如果一个数组中所有元素都要满足Q,这个数组才满足P;那么就要遍历这个数组,只要其中一个不满足Q,那么就可以停止遍历,并且可以判断数组不满足P。

2025:对“Problem Description”中的“查找其中的最大字母”理解有误,看了杭电上的讨论才知道是按照ASCII码来找最大元素。

把最大字母初试化为“A”,并且按照ASCII码的标准找最大元素,可以通过。

然后把最大字母的初始化改成“a”,也可以通过,一次可以断定每个测试用例都有小写字母。

试探性的修改了一下代码,如果遇到大写字母,就在大写字母后输出“yes”,得到了WA,以此可以断定有大写字母。

2026:本题有一个假设,就是字符串只包含大小写字母和空格。所以输入时需要用gets函数,当输入失败时,这个函数的返回值是0。

如果仅仅把每个单词首字母减去32,依然可以通过,所以推测每个单词的首字母都是小写的。不过最保险的办法就是用位与(~32),这样无论是大写还是小写,计算结果都是大写。

2027:在 int count[5]; 中,sizeof(count)的结果是20,不是5。

如果想用sizeof控制循环变量 i 的上限,可以用sizeof(count)/sizeof(int)。

 

原创粉丝点击