題目連結:
題目大意:
輸入有多列,每列給定一字串(只包含小寫字母)。求該字串中連續出現最多次的字母為何?如果有多個連續出現最多次的,則請找到最早出現的字母。
範例輸入:
abbcc
cciiiiiiiixxxxxxxxxxxxguuuuuuufugpccccccc
範例輸出:
b 2
x 12
解題思維:
用一個整數變數 C 當作計數器(一開始設為 1)、一個整數變數 max 當作最大值,以及一個字元變數 T 儲存最大值發生時的字元(即所求)。
跳過字串第一個字元從第二個字元開始,對於第 i 個字元,看第 i - 1 個字元是否與它相同。
如果是,則計數器 C 加 1 ;反之,判斷 C 的值跟 max 的大小。如果 max < C ,則 max 更新為 C 之值,然後將 T 設為第 i - 1 個字元;其他的情況,max 與 T 更新。
字串掃完之後,因為最後一個連續的字元尚未判斷過其與 max 的大小。所以仿照上面的做法去判斷以及更新 max 之值。此時字元 T 與整數 max 之值即為所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。