You are given a string num
representing a large integer. An integer is good if it meets the following conditions:
- It is a substring of
num
with length3
. - It consists of only one unique digit.
Return the maximum good integer as a string or an empty string ""
if no such integer exists.
Note:
- A substring is a contiguous sequence of characters within a string.
- There may be leading zeroes in
num
or a good integer.
Example 1:
Input: num = "6777133339" Output: "777" Explanation: There are two distinct good integers: "777" and "333". "777" is the largest, so we return "777".
Example 2:
Input: num = "2300019" Output: "000" Explanation: "000" is the only good integer.
Example 3:
Input: num = "42352338" Output: "" Explanation: No substring of length 3 consists of only one unique digit. Therefore, there are no good integers.
Constraints:
3 <= num.length <= 1000
num
only consists of digits.
class Solution:
def largestGoodInteger(self, num: str) -> str:
for i in range(9, -1, -1):
t = str(i) * 3
if t in num:
return t
return ''
class Solution {
public String largestGoodInteger(String num) {
for (int i = 9; i >= 0; i--) {
String ret = String.valueOf(i).repeat(3);
if (num.contains(ret)) {
return ret;
}
}
return "";
}
}
function largestGoodInteger(num: string): string {
for (let i = 9; i >= 0; i--) {
const c = String(i).repeat(3);
if (num.includes(c)) return c;
}
return '';
}
class Solution {
public:
string largestGoodInteger(string num) {
for (char i = '9'; i >= '0'; --i) {
string t(3, i);
if (num.find(t) != string::npos) return t;
}
return "";
}
};
func largestGoodInteger(num string) string {
for c := '9'; c >= '0'; c-- {
t := strings.Repeat(string(c), 3)
if strings.Contains(num, t) {
return t
}
}
return ""
}