2) 統(tǒng)計
問題提出
統(tǒng)計字符或者數(shù)字出現(xiàn)的次數(shù)。
算法說明
以字符統(tǒng)計為例,設(shè)基本問題如下:
請統(tǒng)計一段文本中英文字母在文本中出現(xiàn)的次數(shù)。(不區(qū)分大小寫)
如:I am a student.
得到:
A:2 d:1 e:1 I:1 m:1 n:1 s:1 t:2 u:1
分析:
由于不區(qū)分大小寫,因此可定義一個大小為26(下標(biāo):0-25)的數(shù)組,每個元素依次記錄A、B、C…Z字母出現(xiàn)的次數(shù)。
A(0)存放字母a出現(xiàn)的次數(shù)
A(1)存放字母b出現(xiàn)的次數(shù)
A(2)存放字母c出現(xiàn)的次數(shù)
A(3)存放字母d出現(xiàn)的次數(shù)
…
譬如:aabdc
代碼如下:
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim zimu(25) As Integer
Dim allStr As String
Dim aStr As String
allStr = UCase(Text1.Text)
For i = 1 To Len(Text1.Text)
aStr = Mid(allStr, i, 1)
If aStr >= "A" And aStr <= "Z" Then
zimu(Asc(aStr) - Asc("A")) = zimu(Asc(aStr) - Asc("A")) + 1
End If
Next i
For i = 0 To 25
If zimu(i) <> 0 Then
j = j + 1
Text2.Text = Text2.Text & Chr(i + Asc("A")) & ":" & str(zimu(i)) & " "
If j Mod 5 = 0 Then Text2.Text = Text2.Text & Chr(13) & Chr(10)
End If
Next i
End Sub
解題技巧
熟練運(yùn)用字符處理函數(shù),對于一些數(shù)論題,譬如逆序數(shù)等也可將數(shù)字通過CStr函數(shù)轉(zhuǎn)換為字符后,利用字符處理函數(shù)來解題。
希望與更多計算機(jī)等級考試的網(wǎng)友交流,請進(jìn)入計算機(jī)等級考試論壇
更多信息請?jiān)L問:考試吧計算機(jī)等級考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |