百度面試題:字符串翻轉代碼
給定一個字符串,比如“abcdef”,要求寫一個函數,將字符串翻轉成“defabc”,或者翻轉成“efabcd”,字串位數要求是可變的。
此題還是2011年考研數據結構壓軸大題,在百度面前也就是一面第一題。可見百度一斑。
解法是將字符串進行3次翻轉,第一次翻轉整個字符串,第二次跟第三次翻轉部分字符串。
#include<stdio.h>void swap(char str,int n) { char temp; char p,q; p = str; q = str + n - 1; while(p < q) { temp = p; p = q; q = temp; p++; q--;
} } void reserve(char str,int n) { swap(str,strlen(str)); swap(str,n); swap(str+n,strlen(str)-n); } int main(int argc,char *argv[]) { char str[10] = "abcdef"; printf("%s\n",str); reserve(str,3); //3是翻轉的位數 printf("%s\n",str); return 0; }</pre>
本文由用戶 wdey 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!