779. 第K个语法符号
779. 第K个语法符号
Jaytoon1.题目内容
我们构建了一个包含 n 行( 索引从 1 开始 )的表。首先在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。
- 例如,对于 n = 3 ,第 1 行是 0 ,第 2 行是 01 ,第3行是 0110 。
给定行数 n 和序数 k,返回第 n 行中第 k 个字符。( k 从索引 1 开始)
示例 1:
1 | 输入: n = 1, k = 1 |
示例 2:
1 | 输入: n = 2, k = 1 |
示例 3:
1 | 输入: n = 2, k = 2 |
提示:
- 1 <= n <= 30
- 1 <= k <= 2n - 1
2.我的解答
1 | class Solution { |
3.算法思想
根据产生的字符串具有对称性和相同位置相反,使用非递归前推思想,首先确定当前的K所在的幂次,将K折返到上一个位置并取反,如此反复直到折叠到将count为0,若K的位置为2的整数次幂,那么将直接折返到剩余幂次数。设置的初始循环取反变量为false,每次折返进行取反,最后根据取反变量进行输出。
4.学习思路
评论
匿名评论隐私政策