| comments | true | |
|---|---|---|
| difficulty | 简单 | |
| edit_url | https://github.com/doocs/leetcode/edit/main/solution/2200-2299/2264.Largest%203-Same-Digit%20Number%20in%20String/README.md | |
| rating | 1308 | |
| source | 第 292 场周赛 Q1 | |
| tags |
|
给你一个字符串 num ,表示一个大整数。如果一个整数满足下述所有条件,则认为该整数是一个 优质整数 :
- 该整数是
num的一个长度为3的 子字符串 。 - 该整数由唯一一个数字重复
3次组成。
以字符串形式返回 最大的优质整数 。如果不存在满足要求的整数,则返回一个空字符串 "" 。
注意:
- 子字符串 是字符串中的一个连续字符序列。
num或优质整数中可能存在 前导零 。
示例 1:
输入:num = "6777133339" 输出:"777" 解释:num 中存在两个优质整数:"777" 和 "333" 。 "777" 是最大的那个,所以返回 "777" 。
示例 2:
输入:num = "2300019" 输出:"000" 解释:"000" 是唯一一个优质整数。
示例 3:
输入:num = "42352338" 输出:"" 解释:不存在长度为 3 且仅由一个唯一数字组成的整数。因此,不存在优质整数。
提示:
3 <= num.length <= 1000num仅由数字(0-9)组成
我们可以从大到小枚举每个数字
若枚举完所有的
时间复杂度
class Solution:
def largestGoodInteger(self, num: str) -> str:
for i in range(9, -1, -1):
if (s := str(i) * 3) in num:
return s
return ""class Solution {
public String largestGoodInteger(String num) {
for (int i = 9; i >= 0; i--) {
String s = String.valueOf(i).repeat(3);
if (num.contains(s)) {
return s;
}
}
return "";
}
}class Solution {
public:
string largestGoodInteger(string num) {
for (char i = '9'; i >= '0'; --i) {
string s(3, i);
if (num.find(s) != string::npos) {
return s;
}
}
return "";
}
};func largestGoodInteger(num string) string {
for c := '9'; c >= '0'; c-- {
if s := strings.Repeat(string(c), 3); strings.Contains(num, s) {
return s
}
}
return ""
}function largestGoodInteger(num: string): string {
for (let i = 9; i >= 0; i--) {
const s = String(i).repeat(3);
if (num.includes(s)) {
return s;
}
}
return '';
}