在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。
给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始)
很明显的递归,只要弄清上一层和下一层之间的01关系即可。
class Solution {
public int kthGrammar(int N, int K) {
if(N==1)
return 0;
if(K%2==0)
return 1^kthGrammar(N-1,(K+1)/2);
return kthGrammar(N-1,(K+1)/2);
}
}
本文介绍了一种通过递归算法生成特定01语法的方法。该算法基于一个初始状态为0的规则,每进行一次迭代,将前一行的0替换为01,1替换为10,最终求出第N行的第K个字符。文章提供了完整的代码实现,并解释了递归函数的工作原理。
886

被折叠的 条评论
为什么被折叠?



