您好,登錄后才能下訂單哦!
1、問題描述:
例:I am student ------>結果為:student am I
算法思想:
先將整個字符串反轉一遍,然后在從頭開始,遇到空格的在次進行反轉,就可以實現反轉字符串中的單詞了;
2、代碼實現
#include<stdio.h> #include<string.h> #include<ctype.h> void revStr(char *str, int from, int to); void finalRev(char *str); void finalRev(char *str){ int from = 0; int to = 0; while(str[to]){ while(isalpha(str[to])){ to++; } revStr(str, from, to-1); while(isspace(str[to])){ //針對中間出現多個空格的情況,可以跳躍過去 to++; } from = to; } } void revStr(char *str, int from, int to){ char tmp; while(from < to){ tmp = str[from]; str[from++] = str[to]; str[to--] = tmp; } } void main(void){ char str[80]; char *p = str; int strLen; int count = 0; int i = 0; printf("請輸入字符串:\n"); gets(str); strLen = strlen(str); revStr(str, 0, strLen-1); finalRev(str); puts(str); }
3、結果截圖
算法分析:空間復雜度為:O(1);
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。