| 123456789101112131415161718192021222324252627282930313233 | 
							- func originalDigits(s string) string {
 
- 	freq, cnt := make([]int, 256), make([]int, 10)
 
- 	for _, r := range s {
 
- 		freq[r]++
 
- 	}
 
- 	cnt[0] = wordCnt(freq, 'z', "o")
 
- 	cnt[2] = wordCnt(freq, 'w', "o")
 
- 	cnt[4] = wordCnt(freq, 'u', "fo")
 
- 	cnt[6] = wordCnt(freq, 'x', "s")
 
- 	cnt[8] = wordCnt(freq, 'g', "h")
 
- 	//
 
- 	cnt[1] = wordCnt(freq, 'o', "n")
 
- 	cnt[3] = freq['h']
 
- 	cnt[5] = freq['f']
 
- 	cnt[7] = wordCnt(freq, 's', "n")
 
- 	//
 
- 	cnt[9] = freq['n'] / 2
 
- 	var sb strings.Builder
 
- 	for i := 0; i < 10; i++ {
 
- 		for j := 0; j < cnt[i]; j++ {
 
- 			sb.WriteByte(byte(i + '0'))
 
- 		}
 
- 	}
 
- 	return sb.String()
 
- }
 
- func wordCnt(freq []int, key byte, word string) int {
 
- 	cnt := freq[key]
 
- 	for _, r := range word {
 
- 		freq[r] -= cnt
 
- 	}
 
- 	return cnt
 
- }
 
 
  |