LeetCode 788 旋轉數字

2021-09-24 20:28:43 字數 1148 閱讀 6376

題目描述:

我們稱乙個數 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 同理,除了...