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 length 3.

  • 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).

All Problems

All Solutions