Leetcode 1545. Find Kth Bit in Nth Binary String

Posted SnailTyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 1545. Find Kth Bit in Nth Binary String相关的知识,希望对你有一定的参考价值。

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Description

2. Solution

**解析:**Version 1,依次求出Si,返回对应的第k位即可。Version 2进行了优化,当字符串的长度大于等于k时,第k位字符就已经可以确定并返回了,不需要执行到Sn

  • Version 1
class Solution:
    def findKthBit(self, n: int, k: int) -> str:
        pre = '0'
        for i in range(1, n):
            current = pre + '1' + self.invert(pre)[::-1]
            pre = current
        return pre[k-1]


    def invert(self, s):
        result = ''
        for ch in s:
            if ch == '1':
                result += '0'
            else:
                result += '1'
        return result
  • Version 2
class Solution:
    def findKthBit(self, n: int, k: int) -> str:
        pre = '0'
        for i in range(1, n):
            if len(pre) < k:
                current = pre + '1' + self.invert(pre)[::-1]
                pre = current
            else:
                return pre[k-1]
        return pre[k-1]


    def invert(self, s):
        result = ''
        for ch in s:
            if ch == '1':
                result += '0'
            else:
                result += '1'
        return result

Reference

  1. https://leetcode.com/problems/find-kth-bit-in-nth-binary-string/

以上是关于Leetcode 1545. Find Kth Bit in Nth Binary String的主要内容,如果未能解决你的问题,请参考以下文章

寒假 12 (表的链表实现彻底结束,find kth未解决)

Kth Largest Element in an Array -- LeetCode

Leetcode-215. Kth Largest Element in an Array

Leetcode 230. Kth Smallest Element in a BST

#Leetcode# 215. Kth Largest Element in an Array

LeetCode 703. Kth Largest Element in a Stream