題目描述:
我們稱乙個數 x 為好數, 如果它的每位數字逐個地被旋轉 180 度後,我們仍可以得到乙個有效的,且和 x 不同的數。要求每位數字都要被旋轉。
如果乙個數的每位數字被旋轉以後仍然還是乙個數字, 則這個數是有效的。0, 1, 和 8 被旋轉後仍然是它們自己;2 和 5 可以互相旋轉成對方;6 和 9 同理,除了這些以外其他的數字旋轉以後都不再是有效的數字。
現在我們有乙個正整數 n, 計算從 1 到 n 中有多少個數 x 是好數?
示例:
輸入: 10
輸出: 4
解釋:
在[1, 10]中有四個好數: 2, 5, 6, 9。
注意 1 和 10 不是好數, 因為他們在旋轉之後不變
演算法思想:動態規劃
包含3,4,7的數都是壞數,包含2,5,6,9中的任意乙個數都是好數。
將乙個數字拆分成a=n%10,b=n/10,a和b中只要有乙個含有3,4,7就是壞數,只要有乙個包含2,5,6,9就是好數
定義dp陣列,存放三種狀態值。0:一般壞數,1:包含3,4,7的壞數,2:好數
還有一種很簡潔的方法,設定雜湊陣列hashtable,陣列中存放從0——9的標記:hashtable[10]=,陣列下標對應0-9,陣列中存放的數字表示這個數是什麼樣的數。0:還有3,4,7;1:不含3,4,7的壞數;2:好數
LeetCode 788 旋轉數字
我們稱乙個數 x 為好數,如果它的每位數字逐個地被旋轉 180 度後,我們仍可以得到乙個有效的,且和 x 不同的數。要求每位數字都要被旋轉。如果乙個數的每位數字被旋轉以後仍然還是乙個數字,則這個數是有效的。0,1,和 8 被旋轉後仍然是它們自己 2 和 5 可以互相旋轉成對方 6 和 9 同理,除了...
Leetcode788 旋轉數字(Python)
題目描述 我們稱乙個數 x 為好數,如果它的每位數字逐個地被旋轉 180 度後,我們仍可以得到乙個有效的,且和 x 不同的數。要求每位數字都要被旋轉。如果乙個數的每位數字被旋轉以後仍然還是乙個數字,則這個數是有效的。0,1,和 8 被旋轉後仍然是它們自己 2 和 5 可以互相旋轉成對方 6 和 9 ...
788 旋轉數字
我們稱乙個數 x 為好數,如果它的每位數字逐個地被旋轉 180 度後,我們仍可以得到乙個有效的,且和 x 不同的數。要求每位數字都要被旋轉。如果乙個數的每位數字被旋轉以後仍然還是乙個數字,則這個數是有效的。0,1,和 8 被旋轉後仍然是它們自己 2 和 5 可以互相旋轉成對方 6 和 9 同理,除了...