把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位
如果在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。
我们给定了一个数组 widths ,这个数组 widths[0] 代表 'a' 需要的单位, widths[1] 代表 'b' 需要的单位,..., widths[25] 代表 'z' 需要的单位。
现在回答两个问题:
1.至少多少行能放下S
2.以及最后一行使用的宽度是多少个单位
https://leetcode.cn/problems/number-of-lines-to-write-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
vector<int> numberOfLines(vector<int>& widths, string s) {
vector<int> _return; _return.resize(2);
int count = s.size();
int cur;
_return[0] = 1;
for(int i = 0; i < count; i++)
{
cur = widths[s[i] - 'a'];
if(_return[1] + cur > 100)
{
_return[0]++;
_return[1]=cur;
continue;
}
_return[1] += cur;
}
return _return;
}
};