java面试题(2)

来源:互联网 发布:空间日志转载软件 编辑:程序博客网 时间:2024/05/22 07:55

原题:

// Given a rows x cols screen and a sentence represented by a list of non-empty words, find how many times the given sentence can be fitted on the screen.// Note:    // A word cannot be split into two lines.    // The order of words in the sentence must remain unchanged.    // Two consecutive words in a line must be separated by a single space.    // Total words in the sentence won't exceed 100.    // Length of each word is greater than 0 and won't exceed 10.    // 1 ≤ rows, cols ≤ 20,000.// Example 1:// Input:// rows = 2, cols = 8, sentence = ["hello", "world"]// Output: // 1// Explanation:// hello---// world---// The character '-' signifies an empty space on the screen.// Example 2:// Input:// rows = 3, cols = 6, sentence = ["a", "bcd", "e"]// Output: // 2// Explanation:// a-bcd- // e-a---// bcd-e-// The character '-' signifies an empty space on the screen.// Example 3:// Input:// rows = 4, cols = 5, sentence = ["I", "had", "apple", "pie"]// Output: // 1// Explanation:// I-had// apple// pie-I// had--// The character '-' signifies an empty space on the screen.

答案:

public class Solution {    public int wordsTyping(String[] sentence, int rows, int cols) {        String s = String.join(" ", sentence) + " ";        int start = 0;        int l = s.length();        for(int i = 0; i < rows; i++) {            start += cols;            if(s.charAt(start % l) == ' ') {                start++;            }            else {                while(start > 0 && s.charAt((start - 1) % l) != ' ') {                    start--;                }            }        }        return start / s.length();    }}
原创粉丝点击