【LeetCode】806. Number of Lines To Write String
程序员文章站
2022-07-15 12:47:21
...
题目:
简述题目:
题目中width数组按照字母表顺序依次给了每个字母所占用的长度,然后给出一个字符串,问存储这个字符串需要用多少行(每行的最大长度为100,一个字母不能够分行存放)
思路:
遍历字符串,依次存放,并计算长度。(提示:要判断字符串是否为空,若为空则为0行,否则至少有1行)
代码:
public class numberOfLines806 {
public static int[] numberOfLines(int[] widths, String S) {
int[] res ={0,0};
int lineLen = 0;
int chLen;
if(!S.isEmpty()){
res[0] = 1;
}
for(int i = 0; i < S.length(); i++){
char ch = S.charAt(i);
chLen = ch - 'a';
lineLen += widths[chLen];
if(lineLen > 100){
res[0]++;
lineLen = 0;
lineLen += widths[chLen];
}
}
res[1] = lineLen;
return res;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] 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};
String S = "abcdefghijklmnopqrstuvwxyz";
int[] res = numberOfLines(widths, S);
for(int i = 0; i < res.length;i++){
System.out.print(res[i] + "\t");
}
System.out.println();
}
}
上一篇: 【高精乘单精】岛屿的缘分
下一篇: float之文字环绕问题