目录
零、写在前面
一、主要知识点
1.字符串遍历
2.大小写转换。
二、课后习题
1812. 判断国际象棋棋盘中一个格子的颜色
LCP 17. 速算机器人
2011. 执行操作后的变量值
1876. 长度为三且各字符不同的子字符串
520. 检测大写字母
709. 转换成小写字母
1704. 判断字符串的两半是否相似
1844. 将所有数字用字符替换
1805. 字符串中不同整数的数目
写在最后
零、写在前面
这是打卡的第二十天,今天难度不高,其中有些是之前的题目我放了链接。主要知识点在
《算法零基础100讲》(第21讲) 字符串算法(一) - 字符串遍历https://blog.csdn.net/WhereIsHeroFrom/article/details/120875895
https://blog.csdn.net/WhereIsHeroFrom/article/details/120875895
一、主要知识点
1.字符串遍历
由于'\0'结束符的ASCII码为0,所以可以用下面的方式进行遍历。
for(int i = 0;s[i];++i){ //blabla }
2.大小写转换。
其实小写的ASCII码比大写的大' '个(你说你看不见?你仔细瞅瞅?)。好吧其实就是差一个空格的ASCII码值。可以取查表看看
if(s[i] >= 'A' && s[i] <= 'Z'){ s[i] += ' '; }
二、课后习题
1812. 判断国际象棋棋盘中一个格子的颜色
1812. 判断国际象棋棋盘中一个格子的颜色
https://leetcode-cn.com/problems/determine-color-of-a-chessboard-square/
思路
如果把它看成一个矩阵的话,就是下标和为偶数的是黑色,奇数为白色。
所以一行代码完事了呗?
bool squareIsWhite(char * coordinates){ //求下表和并返回奇偶判定 return (coordinates[0] - 'a' + coordinates[1] - '1') & 1; }
结果分析
可还行?
LCP 17. 速算机器人
LCP 17. 速算机器人
https://leetcode-cn.com/problems/nGK0Fy/
主要思路
不难,让干啥干啥就完事了。。
int calculate(char* s){ int x = 1,y = 0;//初始化 for(int i = 0;s[i];++i) //遍历字符串计算值 if(s[i] == 'A') x = 2 * x + y; else y = 2 * y + x; return x + y; }
结果分析
可以把?
2011. 执行操作后的变量值
2011. 执行操作后的变量值
https://leetcode-cn.com/problems/final-value-of-variable-after-performing-operations/
思路
差不多也算是暴力了,但是只要判断前两位就好了。
int finalValueAfterOperations(char ** operations, int operationsSize){ int x = 0; for(int i = 0;i < operationsSize;++i)//遍历判断 if(operations[i][0] == '+') x++; //是++x else if(operations[i][0] == '-') x--;//是--x else if(operations[i][1] == '+') x++;//是x++ else if(operations[i][1] == '-') x--;//是x-- return x; }
结果分析
凑合玩吧