To find the largest 3-same-digit substring, scan the string and check every group of three consecutive identical digits, keeping track of the largest found.
classSolution {
public: string largestGoodInteger(string num) {
string ans ="";
for (int i =0; i +2< num.size(); ++i) {
if (num[i] == num[i+1] && num[i+1] == num[i+2]) {
string s = num.substr(i, 3);
if (s > ans) ans = s;
}
}
return ans;
}
};
1
2
3
4
5
6
7
8
9
10
funclargestGoodInteger(numstring) string {
ans:=""fori:=0; i+2 < len(num); i++ {
ifnum[i] ==num[i+1] &&num[i+1] ==num[i+2] {
s:=num[i:i+3]
ifs > ans { ans = s }
}
}
returnans}
1
2
3
4
5
6
7
8
9
10
11
12
classSolution {
public String largestGoodInteger(String num) {
String ans ="";
for (int i = 0; i + 2 < num.length(); ++i) {
if (num.charAt(i) == num.charAt(i+1) && num.charAt(i+1) == num.charAt(i+2)) {
String s = num.substring(i, i+3);
if (s.compareTo(ans) > 0) ans = s;
}
}
return ans;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
classSolution {
funlargestGoodInteger(num: String): String {
var ans = ""for (i in0..num.length-3) {
if (num[i] == num[i+1] && num[i+1] == num[i+2]) {
val s = num.substring(i, i+3)
if (s > ans) ans = s
}
}
return ans
}
}
1
2
3
4
5
6
7
8
9
classSolution:
deflargestGoodInteger(self, num: str) -> str:
ans =""for i in range(len(num)-2):
if num[i] == num[i+1] == num[i+2]:
s = num[i:i+3]
if s > ans:
ans = s
return ans
1
2
3
4
5
6
7
8
9
10
11
12
13
impl Solution {
pubfnlargest_good_integer(num: String) -> String {
let bytes = num.as_bytes();
letmut ans ="".to_string();
for i in0..bytes.len().saturating_sub(2) {
if bytes[i] == bytes[i+1] && bytes[i+1] == bytes[i+2] {
let s =&num[i..i+3];
if s > ans { ans = s.to_string(); }
}
}
ans
}
}