python 第K个语法符号

 

地址:https://leetcode-cn.com/problems/k-th-symbol-in-grammar/

 

 1 '''
 2 
 3 在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。
 4 
 5 给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始)
 6 
 7 
 8 例子:
 9 
10 输入: N = 1, K = 1
11 输出: 0
12 
13 输入: N = 2, K = 1
14 输出: 0
15 
16 输入: N = 2, K = 2
17 输出: 1
18 
19 输入: N = 4, K = 5
20 输出: 1
21 
22 解释:
23 第一行: 0
24 第二行: 01
25 第三行: 0110
26 第四行: 01101001
27 
28 
29 '''
30 
31 class Solution:
32     def kthGrammar(self, n: int, k: int) -> int:
33         if n==1:
34             if k == 1: return 0
35         if n==2:
36             if k == 1:return 0
37             else:return 1
38         if k <= (2 **(n-1)) /2:return self.kthGrammar(n-1,k)
39         else:
40             if self.kthGrammar(n-1,k-((2 **(n-1)) /2)) ==1 :return 0
41             else: return 1

 

 

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/k-th-symbol-in-grammar

posted @ 2021-06-06 22:52  菜小鱼~  阅读(219)  评论(0编辑  收藏  举报