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 ...