首頁>技術>

題目

給定一個非空字串,其中包含字母順序打亂的英文單詞表示的數字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題目,利用字母唯一性找到對應數字

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 阿里 Mock 工具正式開源,幹掉市面上所有 Mock 工具