題目
給定一個非空字串,其中包含字母順序打亂的英文單詞表示的數字0-9。按升序輸出原始的數字。
注意:輸入只包含小寫英文字母。
輸入保證合法並可以轉換為原始的數字,這意味著像 "abc" 或 "zerone" 的輸入是不允許的。
輸入字串的長度小於 50,000。
示例 1:輸入: "owoztneoer"輸出: "012" (zeroonetwo)
示例 2:輸入: "fviefuro"輸出: "45" (fourfive)
解題思路分析1、遍歷;時間複雜度O(n),空間複雜度O(n)
func originalDigits(s string) string { m := make(map[byte]int) for i := 0; i < len(s); i++ { m[s[i]]++ } // 利用字母唯一性 arr := [10]int{} arr[0] = m['z'] arr[2] = m['w'] arr[4] = m['u'] arr[6] = m['x'] arr[8] = m['g'] arr[3] = m['t'] - arr[2] - arr[8] arr[1] = m['o'] - arr[0] - arr[2] - arr[4] arr[7] = m['s'] - arr[6] arr[5] = m['v'] - arr[7] arr[9] = m['i'] - arr[5] - arr[6] - arr[8] res := make([]byte, 0) for i := 0; i < 10; i++ { for j := 0; j < arr[i]; j++ { res = append(res, byte(i+'0')) } } return string(res)}
總結
Medium題目,利用字母唯一性找到對應數字
最新評論