You are given a string num representing a large integer. An integer is good if it meets the following conditions:
num with length 3.Return the maximum good integer as a string or an empty string "" if no such integer exists.
Note:
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 <= 1000num only consists of digits.class Solution {
public String largestGoodInteger(String num) {
for (int i = 9; i >= 0; i--) {
String s = "" + i + i + i;
if (num.contains(s))
return s;
}
return "";
}
}class Solution {
public String largestGoodInteger(String num) {
int[] freq = new int[10];
int prev = -1, ans = -1;
for (int i = 0; i < num.length(); i++) {
int digit = num.charAt(i) - '0';
if (digit == prev) {
if (++freq[digit] == 3)
ans = Math.max(ans, digit);
} else {
freq[digit] = 1;
prev = digit;
}
}
return ans == -1 ? "" : "" + ans + ans + ans;
}
}