leetcode779第K个语法符号

leetcode779 K-th Symbol in Grammar

Posted by BY on May 31, 2019

前言

新的一年,好好学习。

正文

问题来源

本问题来自leetcode上的779题。

问题描述

在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。
给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始)

示例 1:

输入: N = 1, K = 1
输出: 0

输入: N = 2, K = 1
输出: 0

输入: N = 2, K = 2
输出: 1

输入: N = 4, K = 5
输出: 1

解释:
第一行: 0
第二行: 01
第三行: 0110
第四行: 01101001

分析:

func kthGrammar(N int, K int) int {
    if 1 == N {
        return 0
    }
    if K % 2 == 0 {
        return int(math.Abs(float64(kthGrammar(N-1, (K+1)/2)-1)))
    } 
    return kthGrammar(N-1, (K+1)/2)
}

总结:

勤思考。

结语

不管怎么样好好加油。