不申請新的空間,字串反轉

2021-07-23 08:37:30 字數 528 閱讀 6107

// 申請了 乙個變數儲存串的長度 ,一般面試這個程式就可以了,能寫出這個其實已經很牛 b 了,整上面那個, 估計別人開始懷疑是以前做過這個題目了,呵呵,還得裝傻點

/* 圖示過程:字串 abcdef

s+1 = str = abcdef』/0』 abcdef』/0』 > fbcdea』/0』 > fbcde』/0』a

s+1 = str = bcde』/0 fbcde』/0』a > fecdb』/0』a > fecd』/0』ba

s+1 = str = cd』/0』 fecd』/0』ba > fedc』/0』ba > fed』/0』cba

s+1 = str =』/0』 ,遞迴返回,此時 s= cd』/0』 已經在上一步改為 d』/0』c > dc』/0』 > edcb』/0』 > fedcba』/0』

*/#includeusing namespace std;

char *reverse(char *s)

{ if(strlen(s) == 1)

return s;

//cout<

不申請變數和空間反轉字串

要求 不申請變數和空間 反轉字串 用乙個函式實現。異或 交換或者加減交換的典型應用!via 筆試題 基本思路 從 兩頭往中間做字元交換 字串最後乙個字元是 0 表示結束,沒有實際意義,可以將它 當作中間變數 等處理完成後,再將最後乙個字元置 0 即可 void reverse char s if s...

以單詞為單位反轉字串,要求不申請任何空間

問題描述 存在乙個可讀寫的字串,其中包括若干單詞,單詞間以空格區分,要求以單詞為單位對字串進行反轉。演算法思想 1 利用異或運算可以進行不申請空間進行字元交換 2 利用遞迴的思想 3 使用strchr函式區分單詞 解決方案 1 利用遞迴和異或運算進行字元交換,這一步將完成字串的整體反轉 遞迴進行字元...

字串反轉

據說一道微軟的面試題,要求考慮時間和空間的優化,下面給出幾種通常字串反轉的方法 1 直接陣列操作 char strreverse char str return str 這種做法原來的str沒有儲存,原來的str也改變了 2 指標操作 char strreverse char str return ...