Input: s ="2523533"Output: "23"Explanation:
Digit `'2'` appears 2 times and digit `'3'` appears 3 times. Each digit in the
pair `"23"` appears in`s` exactly as many times as its numeric value. Hence,the output is`"23"`.
We count the frequency of each digit in the string, then scan for the first adjacent pair of different digits where each digit appears in the string exactly as many times as its numeric value.
classSolution {
public: string findValidPair(string s) {
vector<int> cnt(10, 0);
for (char c : s) cnt[c -'0']++;
for (int i =0; i +1< s.size(); ++i) {
int a = s[i] -'0', b = s[i+1] -'0';
if (a != b && cnt[a] == a && cnt[b] == b)
return string(1, s[i]) + s[i+1];
}
return"";
}
};
classSolution {
public String findValidPair(String s) {
int[] cnt =newint[10];
for (char c : s.toCharArray()) cnt[c -'0']++;
for (int i = 0; i + 1 < s.length(); i++) {
int a = s.charAt(i) -'0', b = s.charAt(i+1) -'0';
if (a != b && cnt[a]== a && cnt[b]== b)
return s.substring(i, i+2);
}
return"";
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
classSolution {
funfindValidPair(s: String): String {
val cnt = IntArray(10)
for (c in s) cnt[c - '0']++for (i in0 until s.length - 1) {
val a = s[i] - '0'val b = s[i+1] - '0'if (a != b && cnt[a] == a && cnt[b] == b)
return s.substring(i, i+2)
}
return"" }
}
1
2
3
4
5
6
7
8
9
classSolution:
deffindValidPair(self, s: str) -> str:
from collections import Counter
cnt = Counter(s)
for i in range(len(s)-1):
a, b = s[i], s[i+1]
if a != b and cnt[a] == int(a) and cnt[b] == int(b):
return a + b
return""
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
impl Solution {
pubfnfind_valid_pair(s: String) -> String {
letmut cnt = [0; 10];
for c in s.chars() {
cnt[c asusize-'0'asusize] +=1;
}
let s_bytes = s.as_bytes();
for i in0..s_bytes.len()-1 {
let a = (s_bytes[i] -b'0') asusize;
let b = (s_bytes[i+1] -b'0') asusize;
if a != b && cnt[a] == a && cnt[b] == b {
return s[i..i+2].to_string();
}
}
String::new()
}
}
1
2
3
4
5
6
7
8
9
10
11
12
classSolution {
findValidPair(s: string):string {
constcnt= Array(10).fill(0);
for (constcofs) cnt[+c]++;
for (leti=0; i+1<s.length; i++) {
consta=+s[i], b=+s[i+1];
if (a!==b&&cnt[a] ===a&&cnt[b] ===b)
returns[i] +s[i+1];
}
return"";
}
}