Algorithm
Problem Name: 423. Reconstruct Original Digits from English
Given a string s
containing an out-of-order English representation of digits 0-9
, return the digits in ascending order.
Example 1:
Input: s = "owoztneoer" Output: "012"
Example 2:
Input: s = "fviefuro" Output: "45"
Constraints:
1 <= s.length <= 105
s[i]
is one of the characters["e","g","f","i","h","o","n","s","r","u","t","w","v","x","z"]
.s
is guaranteed to be valid.
Code Examples
#1 Code Example with Java Programming
Code -
Java Programming
class Solution {
public String originalDigits(String s) {
int[] count = new int[10];
for (int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if (c == 'z') count[0]++;
if (c == 'w') count[2]++;
if (c == 'x') count[6]++;
if (c == 's') count[7]++; //7-6
if (c == 'g') count[8]++;
if (c == 'u') count[4]++;
if (c == 'f') count[5]++; //5-4
if (c == 'h') count[3]++; //3-8
if (c == 'i') count[9]++; //9-8-5-6
if (c == 'o') count[1]++; //1-0-2-4
}
count[7] -= count[6];
count[5] -= count[4];
count[3] -= count[8];
count[9] = count[9] - count[8] - count[5] - count[6];
count[1] = count[1] - count[0] - count[2] - count[4];
StringBuilder sb = new StringBuilder();
for (int i = 0; i < = 9; i++){
for (int j = 0; j < count[i]; j++){
sb.append(i);
}
}
return sb.toString();
}
}
Copy The Code &
Try With Live Editor
Input
s = "owoztneoer"
Output
"012"
#2 Code Example with Javascript Programming
Code -
Javascript Programming
const originalDigits = function(s) {
const count = new Array(10).fill(0);
for (let i = 0; i < s.length; i++) {
let c = s.charAt(i);
if (c === "z") count[0]++;
if (c === "w") count[2]++;
if (c === "x") count[6]++;
if (c === "s") count[7]++; //7-6
if (c === "g") count[8]++;
if (c === "u") count[4]++;
if (c === "f") count[5]++; //5-4
if (c === "h") count[3]++; //3-8
if (c === "i") count[9]++; //9-8-5-6
if (c === "o") count[1]++; //1-0-2-4
}
count[7] -= count[6];
count[5] -= count[4];
count[3] -= count[8];
count[9] = count[9] - count[8] - count[5] - count[6];
count[1] = count[1] - count[0] - count[2] - count[4];
let ans = "";
for (let i = 0; i < = 9; i++) {
ans += `${i}`.repeat(count[i]);
}
return ans;
};
Copy The Code &
Try With Live Editor
Input
s = "owoztneoer"
Output
"012"