今日份 leetcode
189. 轮转数组 709. 转换成小写字母 1309. 解码字母到整数映射
189. 轮转数组 解题思路 将值放到新数组中对应的位置,然后用新数组覆盖原数组
代码 1 2 3 4 5 6 7 8 9 10 void rotate (int * nums, int numsSize, int k) { int arr[numsSize]; for (int i = 0 ; i < numsSize; i++) { arr[(i + k) % numsSize] = nums[i]; } for (int i = 0 ; i < numsSize; i++) { nums[i] = arr[i]; } }
709. 转换成小写字母 解题思路 判断是否为大写,是大写就 ‘+32’,因为大小写相差 32
代码 1 2 3 4 5 6 7 char * toLowerCase (char * s) { for (int i = 0 ; i < strlen (s); i++){ if (s[i] >= 'A' && s[i] <= 'Z' ) s[i] += 32 ; } return s; }
1309. 解码字母到整数映射 又是个难得的好成绩🤣
解题思路 字符 0 - 9 减去 字符 0 就是数字 0 - 9,这时只要加上字符 a 就会等于其对应的小写字母,知道这些,就只需要判断输入的字符满足 0 - 9 还是 # 的条件就好了
代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 char * freqAlphabets (char * s) { char *res= malloc (sizeof (char ) * (strlen (s) + 1 ) ); int idx = 0 ; for (int i = 0 ; i < strlen (s);){ if (i+2 < strlen (s) && s[i+2 ] == '#' ){ res[idx++] = ((s[i] - '0' ) * 10 + s[i + 1 ] - '1' ) + 'a' ; i += 3 ; }else { res[idx++] = (s[i] - '1' ) + 'a' ; i++; } } res[idx] = '\0' ; return res; }