幾道字串類習題

2021-07-13 15:20:17 字數 1764 閱讀 4267

1題:wertyu(競賽基礎題)

把手放在鍵盤上時,稍不注意就會往右錯一位,這樣的話q會變為w,j會變為k等。輸入乙個錯位後敲出的字串,輸出打字員本來想打出的句子。

樣例輸入:o s, gomr ypfsu/

樣例輸出:i am fine today.

解析:本題注意兩點:(1)for迴圈終止條件的判斷,常量字串末尾自動補「\0」,因而可利用str[i]的取值判斷是否查詢到最後乙個字元。(2)反斜線「\」是特殊字元,需要使用轉義序列或直接引用其ascii碼。

2題:tex括號(競賽基礎題)

在tex中,左雙引號是``,右雙引號是』』。輸入一篇包含雙引號的文章,你的任務是把它轉換成tex格式。

樣例輸入:

「to be or not to be,」 quoth the bard, 「thatis the question」.

樣例輸出:

解析:本題的關鍵是如何判斷乙個雙引號是左雙引號還是右雙引號。

3題:週期串(競賽基礎題)

如果乙個字串可以由某個長度為k的字串重複多次得到,我們說該串以k為週期。例如,abcabcabcabc以3為週期(注意,它也以6和12為週期)。輸入乙個長度不超過80的串,輸出它的最小週期。

樣例輸入:hohoho

樣例輸出:2

寫法1:

寫法2:

解析:本題兩種解法的思路是一致的。

4題:編寫乙個函式,把乙個char組成的字串迴圈右移n位。例如:原來是」abcdefghi」,如果n = 2,移位後應該是」hiabcdefg」。(面試題)

解析:本題提供了兩種方法。

5題:編寫程式,從鍵盤輸入一組任意長度的字串,當輸入「#」符時結束輸入(字串不包括「#」),然後程式反向輸出該字串。(面試題)

方法1:將輸入的字串儲存在乙個資料結構中,然後將其內容反向輸出。例如:首先申請乙個棧,每輸入乙個字元時都將該字元做入棧操作,直到入棧佇列中發現「#」為止(「#」不入棧)。然後再將棧中的元素順序出棧。

方法2:題目沒要求儲存輸入的字串,因此可用遞迴解此題。遞迴演算法本身有棧的特性,每次遞迴地呼叫遞迴函式時,系統都會將現場儲存在棧中,待呼叫結束返回時再恢復現場的內容。

字串習題

1.程式執行結果 5,4 char str abcd printf d d sizeof str strlen str sizeof 算的位元組數是整個字串的位元組包含 0 而strlen是字串的長度不包括 0 2.程式執行結果 10,2 char str 10 ab 0d printf d d n...

幾道字串dp的題目

統計ccsu 題解 dp 1 i 代表到第i個原串字元 c 的字串數量。dp 2 i 代表到第i個原串字元 cc 的字串數量。dp 3 i 代表到第i個原串字元 ccs 的字串數量。dp 4 i 代表到第i個原串字元 ccsu 的字串數量。include define ll long long us...

字串習題練習

請根據控制台輸入的特定日期格式拆分日期 如 請輸入乙個日期 格式如 月日 年 經過處理得到 年月日 public static void main string args 給出乙個隨機字串,判斷有多少字母?多少數字?public static void main string args if ch ...