Alice 和 Bob 正在玩一個游戲。最初,Alice 有一個字符串?word = "a"
。
給定一個正整數?k
。
現在 Bob 會要求 Alice 執行以下操作?無限次?:
- 將?
word
?中的每個字符?更改?為英文字母表中的?下一個?字符來生成一個新字符串,并將其?追加?到原始的?word
。
例如,對?"c"
?進行操作生成?"cd"
,對?"zb"
?進行操作生成?"zbac"
。
在執行足夠多的操作后,?word
?中?至少?存在?k
?個字符,此時返回?word
?中第?k
?個字符的值。
注意,在操作中字符?'z'
?可以變成?'a'
。
示例 1:
輸入:k = 5
輸出:"b"
解釋:
最初,word = "a"
。需要進行三次操作:
- 生成的字符串是?
"b"
,word
?變為?"ab"
。 - 生成的字符串是?
"bc"
,word
?變為?"abbc"
。 - 生成的字符串是?
"bccd"
,word
?變為?"abbcbccd"
。
示例 2:
輸入:k = 10
輸出:"c"
提示:
1 <= k <= 500
分析:由于 k 很小,可以直接進行計算,當得到的字符串長度超過 k,輸出第 k 個字符。
class Solution {
public:char kthCharacter(int k) {string ss="a";while(ss.length()<k){string temp;for(int i=0;i<ss.length();++i)temp+=(ss[i]-'a'+1)%26+'a';// cout<<temp<<endl;ss+=temp;}return ss[k-1];}
};