問題
給定乙個字串,乙個這個字串的子串,將第乙個字串反轉,但保留子串的順序不變。
輸入:第乙個字串:「welcome you, my friend」
子串:「you」
輸出:「dneird ym ,you emoclew」
分析 1,掃瞄一遍第乙個字串,然後用stack把它反轉,同時記錄下子串的出現的位置;
2,掃瞄一遍把記錄下來的子串再用stack反轉;
3,將堆疊裡的字元彈出,這樣子串又恢復了原來的順序;
**
#include
#include
#include
using
namespace
std;
const
char* reverse(const
char* s1,const
char *token)
if(*ptoken =='\0')
ptoken = token;
rear = head;
}else
}char *preturn = new
char[strlen(s1)+1];
int i = 0;
while(!stack1.empty())
preturn[i] = '\0';
return preturn;
}int main()
面試 字串反轉 單詞不反轉
面試題目 i lover your name 變成 name your lover i 我的做法 我是考慮到傳遞的分割串可能為多個字元 更好的做法 b 無需申請占用更多的空間,效率也較高,複雜度增加!這個演算法可以相容各自分隔符,任何分隔串都是可以的 b package com.data 字串反轉 ...
字串 反轉單詞不反轉單詞內容
反轉句中的單詞 單詞內容不變 比如 輸入wuhan is dog 輸出 dog is wuhan 和字串迴圈左移類似 兩次反轉 先整體反轉 再用split函式 分割 再依次反轉合併 class solution public string fun string s stringbuffer sb n...
反轉字串,但指定的子串不翻轉 C語言
首先把整個字串反轉過來,然後用查詢子串的函式找到子串,再翻轉回來 char mystrstr char str,char sub char p null,q null,c null int found 0 p str while p 0 if 0 q p if 1 found else int st...