leetcode-5375-復元配列

タイトルの説明:

 

 

 

 ソリューション:動的プログラミング

クラスソリューション:
     def numberOfArrays(self、s:str、k:int)-> int:
        n = len(s)
        dp = [0] *(n + 1 
        dp [0] = 1 
        mod = 10 ** 9 + 7 ための I における範囲(1、N + 1 のための J における範囲(I - 1、-1、-1 ):
                 場合、S [j] == " 0 "続ける場合 INT(S [:I J] )<= k:
                    dp [i] + = dp [j]
                 その他

        
                もし S [I-1] == " 0 "   DP [I] == 0:リターン0
                     ブレーク

        リターン DP [-1]%モッズ

別の;

クラスソリューション:
     def numberOfArrays(self、s:str、k:int)-> int:
        n = len(s)
        f = [0] *(n + 1 
        f [0] = 1 
        m = len(str(k ))
        MOD = 10 ** 9 + 7
         for i in range(1、n + 1 ):
             for j in range(1、m + 1 ):
                 if ij> = 0:
                     if s [ij]!= ' 0 '  および int(s [ij:i])<= k:
                        f [i] + = f [i- j] 
                        f [i]%= MODは
         f [n]を返します

 

おすすめ

転載: www.cnblogs.com/oldby/p/12731103.html