Welcome to Subscribe On Youtube
Formatted question description: https://leetcode.ca/all/2264.html
2264. Largest 3-Same-Digit Number in String
- Difficulty: Easy.
- Related Topics: String.
- Similar Questions: Largest Odd Number in String.
Problem
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.
Solution (Java, C++, Python)
-
class Solution { public String largestGoodInteger(String num) { String maxi = "000"; int c = 0; for (int i = 0; i < num.length() - 2; i++) { String s = num.substring(i, i + 3); if (s.charAt(0) == s.charAt(1) && s.charAt(1) == s.charAt(2)) { if (s.compareTo(maxi) >= 0) { maxi = s; } ++c; } } if (c == 0) { return ""; } return maxi; } } ############ 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 ""; } }
-
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 '' ############ # 2264. Largest 3-Same-Digit Number in String # https://leetcode.com/problems/largest-3-same-digit-number-in-string/ class Solution: def largestGoodInteger(self, num: str) -> str: res = "" for key, group in itertools.groupby(num): if len(list(group)) >= 3: res = max(res, key * 3) return res
-
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 "" }
-
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 ''; }
Explain:
nope.
Complexity:
- Time complexity : O(n).
- Space complexity : O(n).