leetcode1088

CSDN上のブロガーへの参照を提供し、C ++のコードを

クラスソリューション{ 
パブリック:
  INT confusingNumberII(INT N){ 
    N = N。
    ANS = 0; 
    検索(0); 
    ANSを返します。
  } 
プライベート:
  int型nは、ANS; 
  ボイド検索(長い長いNUM){ 
    IF(NUM> n)のリターン; 
    IF(NUM){ 
      IF(!回転(NUM)= NUM)++ ANS。
    } 
    IF(NUM)検索(NUM * 10)。
    検索(NUM * 10 + 1); 
    検索(NUM * 10 + 6)。
    検索(NUM * 10 + 8)。
    検索(NUM * 10 + 9)。
  } 
  長い長い回転(長い長いX){ 
    長い長Y = 0。
    用(; X; X / = 10){ 
      int型のk = X%10。
      スイッチ(K){
        ケース6:K = 9。ブレーク; 
        ケース9:K = 6。ブレーク; 
      } 
      、Y = Y * 10 + K。
    } 
    Yを返します。
  } 
}。

 

私のpythonを変換しようとするが、それがタイムアウトしました:

1  クラスのソリューション:
 2      デフ__init __(自己):
 3          self.n = 0 
4          self.ans = 0 
5  
6      DEF confusingNumberII(自己、N:整数) - > INT 7          self.n = N
 8          self.searchNumber(0 9          リターンself.ans
 10  
11      デフsearchNumber(自己、NUM):
 12          もし NUM> self.n:
 13              リターン
14          の#if self.confusingNumber(NUM):
 15          もしNUM =!0とself.rotate(NUM)=!NUM:
 16              self.ans + = 1 
17              #print(STR(self.ans)+ " " + STR(NUM))
 18          であれば!NUM = 0 19              self.searchNumber(NUM * 10 20          self.searchNumber(NUM * 10 + 1 21          self.searchNumber(NUM * 10 + 6 22          self.searchNumber(NUM * 10 + 8 23         self.searchNumber(NUM * 10 + 9 24  
25      DEF回転(自己、X)
 26          、Y = 0 
27          ながら!X = 0 28              、K = X%10 
29              もし k個の== 6 30                  、K = 9 
31              のelif k個の== 9 32                  、K = 6 
33              、Y = Y * 10 + K
 34              X = X // 10 
35         返す yと

タイムアウトのテストケース:10億、答えは:1950627、私のネイティブの実行時間でのpython:11.3s。

現在、解決策を期待していませんでした。

おすすめ

転載: www.cnblogs.com/asenyang/p/11032348.html