update string

This commit is contained in:
ranwenjie
2021-08-02 13:31:30 +08:00
parent 936d401a85
commit 46f1c0e993
+10 -4
View File
@@ -19,7 +19,10 @@
char *revert_by_word(char *source); char *revert_by_word(char *source);
``` ```
原地逆序,字符串2边的字符逐个交换 , 再按单词逆序; 也可以先按单词逆序,再对整个句子逆序; 思路:
* 原地逆序,字符串2边的字符逐个交换 , 再按单词逆序;
* 也可以先按单词逆序,再对整个句子逆序;
针对不允许临时空间的情况,也就是字符交换不用临时空间,可以使用的方法有: 针对不允许临时空间的情况,也就是字符交换不用临时空间,可以使用的方法有:
@@ -83,18 +86,21 @@ char *revert_by_word(char *source){
>字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 >字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。 如把`字符串abcdef`左旋转2位得到`字符串cdefab` 。请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
``` ```
char *left_rotate(char *str,int offset){ char *left_rotate(char *str,int offset){
} }
``` ```
我们可以abcdef分成两部分,ab和cdef,内部逆序以后,整体再次逆序,就可以得到想要的结果了,也就是跟上面的问题是同样的问题。
思路: 我们可以abcdef分成两部分,ab和cdef,内部逆序以后,整体再次逆序,就可以得到想要的结果了,也就是跟上面的问题是同样的问题。
## 判断字符串是否是回文 ## 判断字符串是否是回文
> 回文,如 abcdcba
分析: 2个指针,一头一尾,逐个比较,都相同就是回文 分析: 2个指针,一头一尾,逐个比较,都相同就是回文
``` ```
@@ -270,7 +276,7 @@ char *proc(char *str){
也就是实现函数atoi的功能,这道题目考查的就是对各种情况下异常处理。比如: 也就是实现函数atoi的功能,这道题目考查的就是对各种情况下异常处理。比如:
以"213"分析转换成证书的过程。3+1x10+2x100,思路是:每扫描到一个字符,把之前得到的数字*10,再加上当前的数字 以`213`分析转换成证书的过程。`3+1x10+2x100` ,思路是:每扫描到一个字符,把 `之前得到的数字*10`,再加上当前的数字
* 0开头,"0213" * 0开头,"0213"
* 正/负数,"-432" ,"--422","++23" * 正/负数,"-432" ,"--422","++23"