1.好数
题解:首先分析题目要求奇数位上的数字是奇数,偶数位上的数字是偶数。开始解题,定义一个count变量为0,输入一个数字,for循环从1开始遍历到n+1,定义一个x作为一会的判断条件,将数字转换为字符串的形式,使用len函数计算出它的长度,作为坐标,坐标是从0开始到num1的长度。根据坐标去判断是奇数位还是偶数位,最后判断是否满足条件即可,满足给count+1继续循环直到循环终止。
重点分析一下坐标怎么去判断奇数位还是偶数位:
1. 比如23的长度是2,从0-2遍历不包含2,num[0] = 2 num[1] = 3,奇数位是坐标为1的3,偶数位是坐标为0的2,奇数位的数对应的坐标就是奇数,判断方式就是舍去奇数坐标上不是奇数的,和偶数坐标上不是偶数的
2. 比如253的长度是3,从0-3遍历不包含3,num[0] = 2 num[1] = 5,num[2] = 3,奇数位上是2和3,偶数位是5,但是他们此时的坐标2和5对应的坐标为0和2,也就是此时奇数位的数对应的坐标成了偶数,判断方式就是舍去奇数坐标上不是偶数的,和偶数坐标上不是奇数的
总结一下就是如果数字的长度是偶数,就满足1的情况,是奇数就满足2的情况,
2.回文字符串
题解:分析题目要求,输入一个只包含小写字母的字符串s,可以在字符串中加入任意个指定字符:l、q、b,满足回文数的条件,也就是从前往后跟从后往前一样。输入n作为行数,接下来输入n行字符串,对每一行字符串进行判断,满足回文数输出yes,不满足no。
重点分析:
先观察给出的案例gmgqlq是不是要在开头加上qlq即可构成回文字符串,形参qlqgmgqlq,仔细思考发现,在开头处加指定字符要满足回文数,也就是说字符串内部也会包含指定字符,那么我们直接使用replace函数将内部指定字符全部换成空字符,即删除内部的指定字符,在判断剩下的是不是回文字符即可。
3.奇怪的捐赠
题解:分析题目要求把钱分成若干个7的倍数。循环若sum>=0,取sum除以7的余数为i,将i加入到列表中,在对sum一直向下整除于7取商,直到sum=0时,结束循环,使用join函数,将列表中的元素转换为字符串并拼接起来,具体不懂得好好去看看十进制是如何计算的,因为取余时的顺序是从前往后但是进制是从后往前计,可以倒着排一次,就变成了七进制下的100万,但是也可以不用,因为本题只是计算份数,然后print输出发现所有的数都小于5,满足条件,最后for循环把所有的数加起来就是最终求的份数
重点就是自己明白十进制的计算思路就行!