運用字串處理相關

2022-03-07 15:36:20 字數 2819 閱讀 5959

題目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

begin)

if(begin==len-1

)

for( i=begin;i)

return

result;

}

題目5.字串的組合,包括全組合和選n組合,n=(1,2,3,...,strlen(str));

假設我們想在長度為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= 「acbbacat= 「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字串那一節課,今天看了書上的常用字串處理函式,並沒有看見昨天所使用的那一種。尷尬 今天呢,看了一下,常用字串處理函式,有複製 貼上 比較 ...