字符串之移位
1.循環左移
void reverse(char *start,char *end) {char temp = '\0';while(start <end){temp = *start;*start = *end;*end = temp;start++;end--;}}int main() {char str[] = "abcdefghi";int m = 3;reverse(str,str + m -1);reverse(str +m,str + strlen(str) - 1);reverse(str,str + strlen(str) - 1);cout << str <<endl;return 0; }?
2.字符串轉置,是循環移動的一種特殊情況
void reverse(char *str) {int length = strlen(str);char *start = str; char *end= str + length -1;char temp = '\0';while(start <end){temp = *start;*start = *end;*end = temp;start++;end--;}}?
3.移動包含問題
字符串str1是否可以通過移動得到str2,只需要通過判斷str2是否在str1str1中即可。
4.字符串單詞翻轉
"I am from Wuhan." -> "Wuhan. from am I"
?
void reverse(char *start,char *end) {char temp = '\0';while(start <end){temp = *start;*start = *end;*end = temp;start++;end--;}}void ReverseSentence(char *str) {char *start = str;char *end = str;while (*end != '\0'){if (*end == ' '){reverse(start,end -1);end++;start = end;}else{end++;} }reverse(start,end - 1);reverse(str,end-1); }?
?
?
?
轉載于:https://www.cnblogs.com/liuweilinlin/p/3281328.html
總結
- 上一篇: HDU 2066 一个人的旅行
- 下一篇: js选择子节点