880 索引處的解碼字串

2021-08-29 01:51:09 字數 968 閱讀 7675

給定乙個編碼字串s。為了找出解碼字串並將其寫入磁帶,從編碼字串中每次讀取乙個字元,並採取以下步驟:

現在,對於給定的編碼字串s和索引k,查詢並返回解碼字串中的第k個字母。

示例1:

輸入:s = "leet2code3", k = 10

輸出:"o"

解釋:解碼後的字串為 "leetleetcodeleetleetcodeleetleetcode"。

字串中的第 10 個字母是 "o"。

示例2:

輸入:s = "ha22", k = 5

輸出:"h"

解釋:解碼後的字串為 "hahahaha"。第 5 個字母是 "h"。

示例3:

輸入:s = "a2345678999999999999999", k = 1

輸出:"a"

解釋:解碼後的字串為 "a" 重複 8301530446056247680 次。第 1 個字母是 "a"。

根據題目要求,基礎字串s按照規則相應的進行膨脹,最簡單的思路就是求出膨脹後的新字串直接輸出第k(k是從1計算)個字元;這樣暴力列舉的方法就是字串超出記憶體限制。

暴力列舉的方法是膨脹字串,再根據所以求得答案,很明顯,我們要反過來做;

#include #include #include using namespace std;

class solution

}while (pos_s>=0)

else if (k % (index) == 0);}

else

index--;

pos_s--;}}

};int main()

880 索引處的解碼字串

給定乙個編碼字串s。為了找出解碼字串並將其寫入磁帶,從編碼字串中每次讀取乙個字元,並採取以下步驟 現在,對於給定的編碼字串s和索引k,查詢並返回解碼字串中的第k個字母。示例 1 輸入 s leet2code3 k 10輸出 o 解釋 解碼後的字串為 leetleetcodeleetleetcodel...

880 索引處的解碼字串

給定乙個編碼字串 s。為了找出解碼字串並將其寫入磁帶,從編碼字串中每次讀取乙個字元,並採取以下步驟 如果所讀的字元是字母,則將該字母寫在磁帶上。如果所讀的字元是數字 例如 d 則整個當前磁帶總共會被重複寫 d 1 次。現在,對於給定的編碼字串 s 和索引 k,查詢並返回解碼字串中的第 k 個字母。示...

880 索引處的解碼字串

給定乙個編碼字串s。為了找出解碼字串並將其寫入磁帶,從編碼字串中每次讀取乙個字元,並採取以下步驟 現在,對於給定的編碼字串s和索引k,查詢並返回解碼字串中的第k個字母。示例 1 輸入 s leet2code3 k 10輸出 o 解釋 解碼後的字串為 leetleetcodeleetleetcodel...