字串部分的典型例題 難

2021-10-19 09:35:39 字數 2808 閱讀 3811

acwing776題:字串移位包含問題

對於乙個字串來說,定義一次迴圈移位操作為:將字串的第乙個字元移動到末尾形成新的字串。

給定兩個字串s1和s2,要求判定其中乙個字串是否是另一字串通過若干次迴圈移位後的新字串的子串。

例如cdaa是由aabcd兩次移位後產生的新串bcdaa的子串,而abcd與acbd則不能通過多次移位來得到其中乙個字串是新串的子串。

輸入格式

共一行,包含兩個字串,中間由單個空格隔開。

字串只包含字母和數字,長度不超過30。

輸出格式

如果乙個字串是另一字串通過若干次迴圈移位產生的新串的子串,則輸出true,否則輸出false。

輸入樣例:

aabcd cdaa

輸出樣例:

true

#include

using

namespace std;

intmain

(void)if

(k==b.

size()

)}}printf

("false\n");

return0;

}

acwing777題:字串乘方

給定兩個字串a和b,我們定義a*b為他們的連線。

例如,如果a=」abc」 而b=」def」, 則a*b=」abcdef」。

如果我們將連線考慮成乘法,乙個非負整數的乘方將用一種通常的方式定義:a^0=」」(空字串),a^(n+1)=a∗(a^n)。

輸入格式

輸入包含多組測試樣例,每組測試樣例佔一行。

每組樣例包含乙個字串s,s的長度不超過100。

最後的測試樣例後面將是乙個點號作為一行。

輸出格式

對於每乙個s,你需要輸出最大的n,使得存在乙個字串a,讓s=a^n。

輸入樣例:

abcd

aaaa

ababab

.輸出樣例:14

3

#include

using

namespace std;

intmain

(void)}

}}return0;

}

acwing778題:字串最大跨距

有三個字串s,s1,s2,其中,s長度不超過300,s1和s2的長度不超過10。

現在,我們想要檢測s1和s2是否同時在s**現,且s1位於s2的左邊,並在s中互不交叉(即,s1的右邊界點在s2的左邊界點的左側)。

計算滿足上述條件的最大跨距(即,最大間隔距離:最右邊的s2的起始點與最左邊的s1的終止點之間的字元數目)。

如果沒有滿足條件的s1,s2存在,則輸出-1。

例如,s = 「abcd123ab888efghij45ef67kl」, s1=」ab」, s2=」ef」,其中,s1在s**現了2次,s2也在s**現了2次,最大跨距為:18。

輸入格式

輸入共一行,包含三個字串s,s1,s2,字串之間用逗號隔開。

資料保證三個字串中不含空格和逗號。

輸出格式

輸出乙個整數,表示最大跨距。

如果沒有滿足條件的s1和s2存在,則輸出-1.

輸入樣例:

abcd123ab888efghij45ef67kl,ab,ef

輸出樣例:

18

#include

using

namespace std;

intmain()

if(k == s1.

size()

)break;}

int r;

for(r = s.

size()

- s2.

size()

;r >=

0;r--)if

(k == s2.

size()

)break;}

l += s1.

size()

-1;if

(l >= r)

puts

("-1");

else

printf

("%d\n"

, r - l -1)

;}return0;

}

acwing779題:最長公共字串字尾

給出若干個字串,輸出這些字串的最長公共字尾。

輸入格式

由若干組輸入組成。

每組輸入的第一行是乙個整數n。

n為0時表示輸入結束,否則後面會繼續有n行輸入,每行是乙個字串(字串內不含空白符)。

每個字串的長度不超過200。

輸出格式

共一行,為n個字串的最長公共字尾(可能為空)。

資料範圍

1≤n≤200

輸入樣例:

3baba

abacba2aa

cc2aaa

0輸出樣例:baa

#include

using

namespace std;

int n;

string str[

200]

;int

main

(void

)while

(len)}if

(!is_same)}if

(success)

break

; len--;}

cout<.substr

(str[0]

.size()

-len)

<}}

典型的字串轉換練習

1 字串轉換練習 1 string和stringbuilder的replace都可以進行替換,分析選擇合適的api。2 15 15 字串轉對應字面值的整數,integer類有相關功能,查詢相關資料自學。需求 1個字元的替換 a 轉換為 b 轉換為 2個字元的替換 c 數字後面跟字母轉換為該數字個字母...

C語言字串例題

define crt secure no warnings include include include include 有乙個字串開頭或結尾含有n個空格 abcdefgdddd 欲去掉前後空格,返回乙個新字串。要求1 請自己定義乙個介面 函式 並實現功能 要求2 編寫測試用例。int trims...

字串雜湊模板 例題

核心思想 將字串看成p進製數,p的經驗值是131或13331,取這兩個值的衝突概率低 小技巧 取模的數用2 64,這樣直接用unsigned long long儲存,溢位的結果就是取模的結果 typedef unsigned long long ull ull h n p n h k 儲存字串前k個...