🟢 Tier B・延伸組合技巧

字串處理:基礎與進階

M1-05 字串處理基礎 M1-06 字串處理進階:格式與編碼

1什麼是字串處理

字串(String)就是一串文字——姓名、密碼、一句話。你可能會覺得字串跟清單差很多,但其實字串幾乎可以當作「一個一個字元排成的清單」來操作:你可以問「這個字串有幾個字元」(跟清單問「有幾筆資料」一樣)、可以問「第幾個字元是什麼」(跟清單的索引存取一樣)、可以走訪每一個字元逐一處理(跟清單走訪一樣)。

所以這個單元不是全新的技巧,而是把你在前面單元學過的走訪、計數、比較這些能力,套用在字元上。差別只在於:字元本身除了可以被計數、比較,還可以做「轉換」(例如把字母往後移幾位變成密碼),這是字串處理特有、清單處理比較少見的操作。

H
E
L
L
O
字串 "HELLO" 其實就是 5 個字元排成的清單,長度=5
🆕 補充圖解:字串=字元清單,索引、走訪的規則跟清單完全相同新增

2核心概念,依課程題目的順序拆解

1

字串的長度

你要做的事:輸出一個字串的長度(字元數)。這是操作字串前最基本的資訊,之後很多題目的迴圈次數都會用到「字串長度」這個值。

字串長度(STR01-001)

2

存取指定位置的字元

你要做的事:
  • 輸出第一個字元與最後一個字元——字串的位置從1開始算,最後一個字元的位置就是「字串長度」本身
  • 輸出第P個字元——概念1(拿到長度)延伸出來的索引存取
  • 逐一輸出每一個字元,每個字元各佔一行——用迴圈把「指定位置存取」套用到每一個位置

第一個與最後一個字元(STR01-002)指定位置的字元(STR01-003)逐字元輸出(JSS01-D03)

3

統計字元出現次數——條件計數套用在字元上

你要做的事:計算某個目標字元C在字串中出現幾次。做法完全就是你在M1-03學過的「條件計數」:準備一個計數器,走訪字串的每一個字元,符合(等於目標字元C)就+1。

計算指定字元數量(STR01-004)指定字元出現次數(JSS01-P01)計算字元出現次數(A-11-0)

4

反向輸出——走訪方向反過來

你要做的事:把字串反向輸出。跟M1-03「清單反向加總」是同一招——迴圈從字串最後一個位置往回走到第一個位置。

反向輸出字串(STR01-005)

5

判斷回文——正著讀反著讀是否相同

你要做的事:判斷字串正著讀和反著讀是否相同。做法是拿概念4「反向輸出」的結果,跟原本的字串比較是否完全相同;也可以更直接一點,同時從字串的最前面跟最後面各自往中間走,一路比較對應的字元是否相同。
L
E
V
E
L
"LEVEL":從左右兩端同時往中間逼近比較,逐一相同就是回文
🆕 補充圖解:兩個指標從頭尾出發,往中間走並逐一比對新增

是否回文(STR01-007)

6

母音數量——多字元條件的計數

你要做的事:計算母音a、e、i、o、u共出現幾次。跟概念3幾乎一樣,差別只是「符合條件」從「等於一個特定字元」變成「等於a、e、i、o、u其中之一」。

母音數量(STR01-006)

7

相鄰字元比較

你要做的事:判斷字串中是否存在兩個相鄰且相同的字元。跟M1-03「相鄰變化統計」是同一個套路:走訪時記住「上一個字元」,跟「這一個字元」比較。

相鄰相同字元(STR01-008)

8

格式檢查——用長度做條件判斷

你要做的事:若字串長度為4,輸出OK;否則輸出NG。這一題結合概念1(拿到長度)跟你在M0-03學過的條件判斷,是字串處理裡最簡單的「驗證資料格式」的雛形。

簡易格式檢查(JSS01-P02)

9

字元轉換——不只是讀取,還要「變成別的字元」

你要做的事:設計一種簡單的密碼規則,將每個字母向後移動固定的位數(例如z會繞回b)。這是字串處理特有的新技巧:走訪每一個字元時,不是統計或比較,而是把它轉換成另一個字元再輸出——通常會用到字元跟數字之間的對應關係,計算位移後的新字元。
Y
(第25個字母)
+2 位移
A
(繞回第1個字母)
🆕 補充圖解:位移超過字母表尾端 Z 時,要「繞回」開頭 A新增

簡易密碼轉換(A-12-0)動態密碼轉換(A-12-1)

⚠️ 常見誤區
位移到字母表尾端時忘記「繞回開頭」(z往後移2位不是變成不存在的字母,而是繞回b)——這一類轉換題目的邊界情況,一定要動手驗證「移到最後幾個字母」的情況。
10

進位轉換——字元跟數字系統的結合

「5進位解碼」(cycjunior-002)把字串處理跟數學的進位系統結合在一起,是概念9「字元轉換」的延伸應用——建議先確定自己熟悉概念9的位移邏輯,再挑戰這一題。
11

找出現最多次的字元——結合統計與找最大值

你要做的事:統計字串中每個字母各出現幾次,找出出現最多次的次數。做法是概念3(統計字元出現次數)套用在每一種可能的字母上(總共26種),再從這26個統計結果中,用你在M0-04學過的「找最大值」技巧找出最多的那個。

計算字元出現最多次數(A-11-1)

12

更多綜合應用(可依需要挑戰)

M1-06還有幾題結合了字串處理跟其他情境:「多科成績計算」「加權成績計算」「檢查碼」「數位顯示器」。這些題目沒有全新的核心概念,是前面概念的實戰演練,建議前面的概念都熟悉後再挑戰。

3建議練習順序對照表

順序概念題目課程
1字串長度字串長度(STR01-001)M1-05
2指定位置存取第一個與最後一個字元/指定位置的字元/逐字元輸出M1-05、M1-06
3字元計數計算指定字元數量/指定字元出現次數M1-05、M1-06
4反向輸出反向輸出字串(STR01-005)M1-05
5判斷回文是否回文(STR01-007)M1-05
6多字元條件計數母音數量(STR01-006)M1-05
7相鄰比較相鄰相同字元(STR01-008)M1-05
8格式檢查簡易格式檢查(JSS01-P02)M1-06
9字元轉換簡易密碼轉換/動態密碼轉換M1-06
10進位轉換5進位解碼M1-06
11找最多次的字元計算字元出現最多次數(A-11-1)M1-06
12綜合應用多科成績計算/加權成績計算/檢查碼/數位顯示器M1-06
🆕 本頁新增內容說明
以下視覺元素為 Cowork 潤飾時新增,MD 正本中沒有:① 字串=字元清單概念圖解 ② 回文雙指標比對圖 ③ 字元位移繞回圖。若確認保留,建議之後補進 MD 正本。