把字串s中的字元從左到右寫入行中。 每行最大寬度度為100,如果往後新寫乙個字元導致該行寬度超過100,則寫入下一行。
注意:乙個字元的寬度不為1!給定乙個陣列widths,其中widths[0]是字元a的寬度,widths[1]是字元b的寬度,…,widths[25]是字元』z』的寬度。
問:把s全部寫完,至少需要多少行?最後一行用去的寬度是多少? 將結果作為長度為2的整數列表返回。
樣例1 :
輸入:
widths = [10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]
s = "abcdefghijklmnopqrstuvwxyz"
輸出: [3, 60]
解釋:
每個字元的寬度都是10. 為了把這26個字元都寫進去,需要兩個整行和乙個用去60長度的行。
樣例2:
輸入:
widths = [4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]
s = "bbbcccdddaaa"
輸出: [2, 4]
解釋:
除'a'以外所有字元都是寬度為10,
"bbbcccdddaa" 會覆蓋9 * 10 + 2 * 4 = 98長度.
而最後的'a'則會寫入第二行且.
所以結果是2行,最後一行是4長度.
思路:起始長度sum為0,起始行數line為1,如果sum+當前字元長度不大於100,則不換行,長度增加,如果大於,則行數增加,sum=0,接著sum再加上當前字元長度即可
class solution
}result.push_back(line);
result.push_back(sum);
return result;
}};
LintCode 13 字串查詢
對於乙個給定的 source 字串和乙個 target 字串,你應該在 source 字串中找出 target 字串出現的第乙個位置 從0開始 如果不存在,則返回 1。如果 source source 和 target target 返回 1。如果 source abcdabcdefg 和 targ...
LintCode 13 字串查詢
對於乙個給定的 source 字串和乙個 target 字串,你應該在 source 字串中找出 target 字串出現的第乙個位置 從0開始 如果不存在,則返回 1。說明 在面試中我是否需要實現kmp演算法?樣例 如果 source source 和 target target 返回 1。如果 s...
LintCode 13 字串查詢
題目描述 對於乙個給定的 source 字串和乙個 target 字串,你應該在 source 字串中找出 target 字串出現的第乙個位置 從0開始 如果不存在,則返回 1。說明 在面試中我是否需要實現kmp演算法?不需要,當這種問題出現在面試中時,面試官很可能只是想要測試一下你的基礎應用能力。...