Leetcode刷题记(1)
题目
- 找出第 K 个字符 I
 
已解答
简单
相关标签
premium lock icon
相关企业
提示
Alice 和 Bob 正在玩一个游戏。最初,Alice 有一个字符串 word = "a"。
给定一个正整数 k。
现在 Bob 会要求 Alice 执行以下操作 无限次 :
将 word 中的每个字符 更改 为英文字母表中的 下一个 字符来生成一个新字符串,并将其 追加 到原始的 word。
例如,对 "c" 进行操作生成 "cd",对 "zb" 进行操作生成 "zbac"。
在执行足够多的操作后, word 中 至少 存在 k 个字符,此时返回 word 中第 k 个字符的值。
注意,在操作中字符 'z' 可以变成 'a'。
解答思路:
刚开始想了个两个字符串,用copy.deepcopy来做,不过后面又想了想,内存占用可能过多?于是换了一种思路,不是累加长度,而是翻倍之后直接乘长度,这样好一些
class Solution(object):
    def kthCharacter(self, k):
        """
        :type k: int
        :rtype: str
        """
        length = 1
        str_1 = 'a'
        while length < k:
            for i in range(length):
                str_1 += chr(ord(str_1[i])+1)
            length *= 2
        return str_1[k-1]
执行用时分布
19
ms
击败
66.67%
复杂度分析
消耗内存分布
12.17
MB
击败
83.33%

                
            
        
浙公网安备 33010602011771号