欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【LeetCode】806. Number of Lines To Write String

程序员文章站 2022-07-15 12:47:21
...

题目:

【LeetCode】806. Number of Lines To Write String

简述题目:

    题目中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();
	}

}

相关标签: LeetCode