⛳
LeetCode 2020-11-03: Consecutive Characters
LeetCode の daily problem に挑戦した記録です。
今日の問題は Consecutive Characters (easy)。
問題の概要
- 与えられた文字列に含まれる文字の連 (同一文字が連続している文字列、run) のうち、最大の連のその長さを返す
考え方
- 月初らしく、easy 問題で小手調べといった感じですね
- 文字列を左から右に処理し、一つ前の文字をキープしつつ現在着目している文字と比較する、を繰り返すことで、連の長さを計測できますね
- このやり方なら時間計算量は
O(n)
になります
- このやり方なら時間計算量は
- 実装 → submit → 一発 accept & beats 100% 達成 🎉
コード
class Solution {
public int maxPower(String s) {
if (s.length() <= 1) {
return s.length();
}
int run = 1, maxRun = 1;
int prev = s.charAt(0);
for (int i = 1; i < s.length(); i++) {
int ch = s.charAt(i);
if (prev == ch) {
run++;
maxRun = Math.max(maxRun, run);
} else {
run = 1;
}
prev = ch;
}
return maxRun;
}
}
Discussion