青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

旅途

如果想飛得高,就該把地平線忘掉

面試系列5--以單詞為最小單位翻轉字符串(改進版)

原題:

? 以單詞為最小單位翻轉字符串
? Write the function String reverseStringWordByWord(String input) that reverses
? a string word by word.? For instance,
? reverseStringWordByWord("The house is blue") --> "blue is house The"
? reverseStringWordByWord("Zed is dead") --> "dead is Zed"
? reverseStringWordByWord("All-in-one") --> "All-in-one"

面試系列4種的實現,比較費空間,因為多申請了一段空間來保存結果。

在看了其他高手的實現后,發現可以不用申請空間,并且循環的次數更少,也可以實現相同的效果。

大體思路是:

原字符串: The house is blue

先翻轉整個字符串-> eulb si esuoh ehT

再翻轉單個單詞。

代碼:

/********************************************************************
??? created:??? 2006/06/16
??? filename:?? C:\Documents and Settings\Administrator\桌面\flwo\reverse2.c
??? file path:? C:\Documents and Settings\Administrator\桌面\flwo
??? file base:? reverse
??? file ext:?? c
??? author:???? A.TNG
??? version:??? 0.0.1
???
??? purpose:??? 以單詞為最小單位翻轉字符串-2 優化版
??????????????? Write the function String reverseStringWordByWord(String input)
??????????????? that reverses a string word by word.? For instance,
??????????????? reverseStringWordByWord("The house is blue") --> "blue is house The"
??????????????? reverseStringWordByWord("Zed is dead") --> "dead is Zed"
??????????????? reverseStringWordByWord("All-in-one") --> "All-in-one"
??????????????? 參考其他高手的思路:
??????????????? 先翻轉整個字符串-> eulb si esuoh ehT
??????????????? 再翻轉單個單詞。

*********************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define REVERSE_WORD(p1, p2) while (p1 <= p2) \
??? { \
??????? char ch; \
??????? ch = *p1; *p1 = *p2; *p2 = ch; \
??????? p1++; p2--; \
??? }

/*
?*? name: reverse_src_word_by_word
?*? params:
?*??? des?????????? [out]?????????? 輸出字符串, des 指向實現申請的空間
?*??? src?????????? [in]??????????? 輸入字符串,需要處理的字符串
?*? return:
?*??? 處理完成后的 des 指針
?*? notes:
?*??? 以單詞為最下單位翻轉字符串
?*??? 優化: 先翻轉整個字符串,再翻轉單個單詞
?*?
?*? author: A.TNG 2006/06/16 10:37
?*/
char * reverse_str_word_by_word2(char *src)
{
??? char?? *p1, *p2;
??? int???? n_src_len;

??? if (NULL == src)
??????? return NULL;

??? /* 先把整個字符串翻轉一次 */
??? n_src_len = strlen(src);
??? p1 = src; p2 = src + n_src_len - 1;
??? REVERSE_WORD(p1, p2);
#if 0
??? while (p1 <= p2)
??? {
??????? /* 交換頭字符和尾字符 */
??????? char ch;
??????? ch = *p1; *p1 = *p2; *p2 = ch;
??????? p1++; p2--;
??? }
#endif

??? /* 再翻轉單個單詞 */
??? p1 = src; p2 = p1;
??? while ('\0' != *p2)
??? {
??????? if (' ' == *p2)
??????? {
??????????? char?? *p;

??????????? p = p2 - 1;
??????????? REVERSE_WORD(p1, p);
#if 0??????????
??????????? while (p1 <= p)
??????????? {
??????????????? char ch;
??????????????? ch = *p1; *p1 = *p; *p = ch;
??????????????? p1++; p--;
??????????? }
#endif
??????????? p2++;
??????????? p1 = p2;
??????? }
??????? else
??????? {
??????????? p2++;
??????? }
??? }

??? /* 翻轉最后一個單詞 */
??? p2--;
??? REVERSE_WORD(p1, p2);
#if 0
??? while (p1 <= p2)
??? {
??????? char ch;
??????? ch = *p1; *p1 = *p2; *p2 = ch;
??????? p1++; p2--;
??? }
#endif

??? return src;
}

/*
?*? name: main
?*? params:
?*??? none
?*? return:
?*??? none
?*? notes:
?*??? none
?*?
?*? author: A.TNG 2006/06/16 10:37
?*/
int main()
{
??? // char src[] = " All-in-one ";
??? // char src[] = "The house is blue";
??? char??? src[]?? = "Zed is dead";

??? (void) reverse_str_word_by_word2(src);
??? printf("*****%s*****\n", src);

??? system("PAUSE");
}

posted on 2007-09-05 01:16 旅途 閱讀(310) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久久网站| 久久亚洲欧洲| 亚洲欧美国产77777| 亚洲精品国精品久久99热一| 国内外成人在线| 国产一区二区高清| 国产麻豆精品久久一二三| 欧美日韩视频在线一区二区观看视频 | 亚洲国产日本| 欧美成人免费大片| 亚洲国产欧美在线人成| 99www免费人成精品| 一区二区三区欧美在线观看| 激情一区二区三区| 亚洲国产日韩欧美在线99 | 亚洲欧美激情诱惑| 欧美一区二区三区视频| 久热成人在线视频| 国产精品看片资源| 在线观看日韩精品| 午夜久久久久久| 亚洲电影成人| 久久国产精品高清| 国产精品久久久久久久久搜平片 | 久久高清国产| 欧美大片免费观看| 国产永久精品大片wwwapp| 亚洲少妇自拍| 亚洲国产精品成人| 久久国产夜色精品鲁鲁99| 欧美性开放视频| 91久久精品国产| 久久三级视频| 久久久另类综合| 激情成人亚洲| 老色鬼精品视频在线观看播放 | 日韩视频免费观看高清完整版| 先锋资源久久| 午夜精品久久久久久久99樱桃| 欧美激情精品久久久六区热门| 国产一级久久| 鲁大师成人一区二区三区| 欧美一级淫片aaaaaaa视频| 国产美女扒开尿口久久久| 欧美日韩一区二区三区在线| 日韩视频精品在线| 在线一区免费观看| 国产欧美va欧美va香蕉在| 欧美一级欧美一级在线播放| 亚洲在线网站| 激情五月婷婷综合| 亚洲日本电影在线| 韩日午夜在线资源一区二区| 久久综合99re88久久爱| 欧美国产日本在线| 欧美在线3区| 免费成人在线视频网站| 亚洲男女自偷自拍图片另类| 久久久欧美精品sm网站| 亚洲网站在线观看| 久久综合一区| 久久久免费精品| 国产精品国产馆在线真实露脸| 久久久一区二区三区| 国产精品系列在线播放| 亚洲韩国日本中文字幕| 在线观看一区欧美| 午夜精品久久久久久99热| 亚洲私人影院在线观看| 欧美承认网站| 亚洲欧洲一区二区三区| 影音先锋中文字幕一区二区| 亚洲一级影院| 亚洲欧美日韩在线综合| 欧美日韩播放| 在线亚洲免费| 欧美一级黄色网| 国产精品一区二区男女羞羞无遮挡| 亚洲手机在线| 久久精品国产欧美激情| 国产欧美日韩一区| 久久精品日韩一区二区三区| 韩国免费一区| 老司机午夜精品视频| 亚洲精品国产精品国自产观看| 亚洲电影av在线| 欧美另类女人| 午夜精品在线观看| 美女免费视频一区| 日韩视频第一页| 国产欧美日韩不卡免费| 性欧美超级视频| 亚洲电影免费在线观看| 亚洲图片欧美一区| 黄色成人av网| 欧美视频网站| 欧美成人午夜77777| 亚洲线精品一区二区三区八戒| 久久视频在线免费观看| 91久久久久久| 一色屋精品亚洲香蕉网站| 欧美日本免费| 蜜桃久久精品乱码一区二区| 亚洲综合精品一区二区| 亚洲国产精品传媒在线观看| 欧美亚洲一区二区三区| 亚洲欧洲一区二区在线观看| 国产免费成人在线视频| 欧美日产一区二区三区在线观看| 欧美一级视频一区二区| 中文日韩在线| 亚洲一区二区精品| 一本色道久久综合亚洲精品婷婷| 欧美福利在线观看| 欧美成人情趣视频| 免费中文字幕日韩欧美| 老司机免费视频久久| 久久久久久久一区| 久久久精品一区二区三区| 午夜免费日韩视频| 国产精品成人免费| 国产精品国产三级国产普通话蜜臀 | 欧美午夜在线视频| 欧美日韩国产小视频| 欧美无砖砖区免费| 国产精品欧美久久| 国产精品一区二区三区成人| 在线成人av.com| 亚洲精品一区二区三区在线观看| 亚洲精品一区在线观看香蕉| 亚洲午夜91| 欧美成人免费在线| 亚洲私人黄色宅男| 久久久亚洲午夜电影| 欧美日韩1区2区| 激情成人在线视频| 亚洲综合精品自拍| 你懂的国产精品| 亚洲一区影音先锋| 欧美视频在线免费看| 91久久久久久久久久久久久| 久久精品二区| 中日韩视频在线观看| 美女主播视频一区| 影音先锋在线一区| 久久精品免费| 亚洲欧美日产图| 国产一区二区精品丝袜| 亚洲淫性视频| 日韩天堂在线视频| 欧美黑人国产人伦爽爽爽| 亚洲成色最大综合在线| 久久国内精品自在自线400部| 一本大道久久a久久精品综合| 久久综合电影| 亚洲黄色天堂| 亚洲精品资源| 欧美三级在线| 久久久久久久久久看片| 久久美女性网| 一区二区三区日韩欧美| 亚洲国产一区二区三区a毛片| 久久国产精品久久精品国产| 亚洲永久在线| 在线观看成人av电影| 亚洲高清不卡av| 欧美丝袜一区二区三区| 欧美中文字幕在线观看| 久久久久久97三级| 亚洲精品无人区| 亚欧美中日韩视频| 亚洲激情第一区| 亚洲天堂第二页| 亚洲国产人成综合网站| 亚洲免费网址| 亚洲国产日韩一区| 亚洲视频每日更新| 亚洲第一免费播放区| 9久草视频在线视频精品| 激情av一区| 欧美一级午夜免费电影| 一本一本久久a久久精品综合妖精| 午夜久久久久久| 欧美激情偷拍| 一区二区精品在线| 久久爱www.| 日韩一区二区电影网| 国产精品日韩精品欧美在线| 香蕉尹人综合在线观看| 亚洲黄色一区| 久久精品99国产精品| 欧美日韩国产麻豆| 玖玖在线精品| 久久野战av| 亚洲人www| 美女性感视频久久久| 欧美激情一区二区三区四区| 亚洲大胆人体在线| 欧美成人免费全部| 亚洲免费观看在线观看|