主題

LeetCode - 551. Student Attendance Record I 解題心得

Not In My Back Yard | 2020-11-15 00:00:02

題目連結:


題目意譯:
給定你一個字串代表一位學生的出席狀況之紀錄。紀錄只會包含下列三個字元:
'A' : 缺席(Absent)
'L' : 遲到(Late)
'P' : 出席(Present)
如果有他出席紀錄不包含超過 1 個的 'A' 或是連續超過 2 次的 'L',則該名學生可以得獎。

你需要根據該名學生的出席紀錄來判斷回傳他可不可以得獎。



範例測資:
範例 1:
輸入: "PPALLP"
輸出: True

範例 2:
輸入: "PPALLL"
輸出: False


解題思維:
就是單純地掃過字串並統計 'A' 出現的次數以及連續最長的 'L' 之片段。

連續片段的長度可以用一個變數當作計數器,第一次遇到 'L' 就設為 1 ,然後之後如果一直遇到 'L' 就一直 + 1 直到遇到不是 'L' 的字母或是字串結尾。此時計數器的值即是該片段的長度。

求得 'A' 的數量以及最長的 'L' 片段之長度後去依照題目判斷即可。只要 'A' 沒有 2 個以上(含)、最長 'L' 片段不超過 2 次就可以獲獎;反之就不行。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。
38 巴幣: 0

更多創作