算法小记 · 字符串翻转
生活随笔
收集整理的這篇文章主要介紹了
算法小记 · 字符串翻转
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
寫一個函數,實現翻轉字符串的功能,并考慮時間復雜度、空間復雜度,使其盡可能最小
1. 字符串翻轉:請把"I am a student.",翻轉成".tneduts a ma I";
吾來打個樣:
#include <stdio.h> void reverseCharArray(char *str, char *begin, char *end) {while(begin < end) { //取地址,交換兩個字符char temp = *begin;*begin = *end;*end = temp;begin++;end--;} }char *reverse_str(char *str) {if(NULL == str) { //字符串為空直接返回;return str;}char *begin;char *end;begin = end = str;while(*end != '\0') { //end指向字符串的末尾;end++;}--end; //取出最后一個'.'字符;//取字符數組下標,進行交換;reverseCharArray(str, begin, end);return str; //返回結果; }int main(int argc, const char * argv[]) {char str[] = "I am a student.";printf("%s\n", reverse_str(str));return 0; }2. 字符串翻轉:請把 "I am a student.",翻轉成 "I ma a .tneduts";
吾來打個樣:
#include <stdio.h> void reverseCharArray(char *str, char *begin, char *end) {while(begin < end) { //取地址,交換兩個字符char temp = *begin;*begin = *end;*end = temp;begin++;end--;} }char *reverseChar(char *str) {char *begin;char *end;begin = end = str;while (*end != '\0') {if (*end == ' ') {reverseCharArray(str, begin, end - 1);begin = end + 1;}else if (*(end + 1) == '\0') { //當*(end + 1)取出的是字符串數組最后的'\0'的時候reverseCharArray(str, begin, end);}end++;}return str; }int main(int argc, const char * argv[]) {char str[] = "I am a student.";printf("%s\n", reverseChar(str));return 0; }3. 字符串翻轉:請把 "I am a student.",翻轉為 "student. a am i";
吾來打個樣:
#include <stdio.h> void reverseCharArray(char *str, char *begin, char *end) {while(begin < end) { //取地址,交換兩個字符char temp = *begin;*begin = *end;*end = temp;begin++;end--;} }char *reverseChar(char *str) {char *begin;char *end;begin = end = str;while (*end != '\0') {if (*end == ' ') {reverseCharArray(str, begin, end - 1);begin = end + 1;}else if (*(end + 1) == '\0') { //當*(end + 1)取出的是字符串數組最后的'\0'的時候reverseCharArray(str, begin, end);}end++;}return str; }int main(int argc, const char * argv[]) {char str[] = "I am a student.";char *begin;char *end;begin = end = str;while(*end != '\0') { //end指向字符串的末尾;end++;}--end; //取出最后一個'.'字符;reverseCharArray(str, begin, end);printf("%s\n", reverseChar(str));return 0; }總結
以上是生活随笔為你收集整理的算法小记 · 字符串翻转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我应该采用 Java 12 还是坚持使用
- 下一篇: 微信小游戏视频激励广告onClose接口