題目1.反轉單詞。輸入hello world。輸出world hello
將hello world整體做一次strrev(),變成dlrow olleh
再每個單詞strrev(),變成world hello
題目2.左旋n位字元。輸入abcdef和2。 輸出cdefab
將輸入的前n位做strrev()操作,得到bacdef
再對後len()-n位做strrev()操作,得到bafedc
最後對整體做strrev()操作,得到cdefab
其實兩次strrev()相當於是換位的作用。
題目3.將字串中的空格替換成%20
從後往前複製,每個字元最多隻移動一次就ok了,減少了重複的移動。
題目4.字串的全排列
int permutation(char* str,int題目5.字串的組合,包括全組合和選n組合,n=(1,2,3,...,strlen(str));begin)
if(begin==len-1
)
for( i=begin;i)
return
result;
}
假設我們想在長度為n的字串中求m個字元的組合。我們先從頭掃瞄字串的第乙個字元。針對第乙個字元,我們有兩種選擇:第一是把這個字元放到組合中去,接下來我們需要在剩下的n-1個字元中選取m-1個字元。
#include #include**:#include
#include
using
namespace
std;
string strinput("
abcd");
void
main()
//初始化字串表,長度2^length
vectorstringtable(tablesize);
stringtable[
0] = ""
;
//currentbit用於標識現在處理的哪一位,currentnum用於標識應減去的最高位值,用於對子字串的索引
int currentbit = 0
;
int currentnum = 1
;
int inputlength =strinput.length();
for (int i = 1; i < tablesize; ++i)
//索引子字串
int substrindex = i -currentnum;
stringtable[i] = strinput.substr(inputlength - currentbit - 1, 1) +stringtable[substrindex];}}
對 於每個字母都有兩種選擇,選他或者不選他,我們可以用乙個二進位制位表示選擇情況,1表示選擇,0表示不選擇,如ab = 110, c = 001, abc = 111。而且abc我們可以通過ab和c這兩個字串相加得到。所以我們可以通過自底向上的方法,快取中間結果,省去不必要的重複計算。
#include #include**:#include
#include
using
namespace
std;
string strinput("
abcd");
void
main()
//初始化字串表,長度2^length
vectorstringtable(tablesize);
stringtable[
0] = ""
;
//currentbit用於標識現在處理的哪一位,currentnum用於標識應減去的最高位值,用於對子字串的索引
int currentbit = 0
;
int currentnum = 1
;
int inputlength =strinput.length();
for (int i = 1; i < tablesize; ++i)
//索引子字串
int substrindex = i -currentnum;
stringtable[i] = strinput.substr(inputlength - currentbit - 1, 1) +stringtable[substrindex];}}
問題6.包含最短的字串.s= 「acbbaca」t= 「aba「 求在s中乙個最短包含t中元素的串。輸出應為baca
解法:
#include #include#include
char* min_include(char* s,char*t)
}p_end++;
}char* result = malloc(sizeof(char)*(end-begin+2
)); memccpy((
void*)result,(void*)s+begin,'
\0',end-begin+1
); result[end-begin+1] = '\0'
;
return
result;
}int
main()
常用字串處理整理
今天遇到這樣乙個問題,統計字串中字元的個數。寫了乙個演算法基本實現了這個功能,只是不知是否有效能更高的演算法。感興趣的一起試試。方法比較簡單,就不寫注釋了,相信大家能夠看懂。code splitstr 1.aa 2.bb 3.cc 4.dd 5.ee 6.ff 7.dd 8.ee 9.ff priv...
C 常用字串處理
我們在編碼的過程中,常常需要處理一些字串。例如對字串的一些拆分,字串中字元的替代,以及剪下 又例如,需要對字串進行進製之間的轉換,格式的的約束等等。這些經常用到的方法整理如下 convert.tostring 1.十進位制轉二進位制 int d 10 十進位制轉二進位制字串 console.writ...
常用字串處理函式
1626 5 劉小銘總結 2016年10月19日 連續19天總結 內容 a 一句話概括今日目標完成情況 常用字串處理函式 80 b 具體內容 昨天看了string字串那一節課,今天看了書上的常用字串處理函式,並沒有看見昨天所使用的那一種。尷尬 今天呢,看了一下,常用字串處理函式,有複製 貼上 比較 ...