题目链接:
力扣https://leetcode-cn.com/problems/truncate-sentence/
【分析】用split(" ")将字符串以空格分割成数组,取前k个,然后用join连接起来就行。
public class Solution {
public String truncateSentence(String s, int k) {
String[] strs = s.split(" ");
String[] res = new String[k];
for(int i = 0; i < k; i++) {
res[i] = strs[i];
}
return String.join(" ", res);
}
}
但是这样效率很慢,因为要分割全部的字符串,但是其实只有前k个有被分割出来的必要,而且后面的join也需要大量时间。
【方法二】看了官方题解之后恍然大悟,直接遍历到第四个空格然后记下坐标分隔开就行了。
class Solution {
public String truncateSentence(String s, int k) {
int n = s.length();
int t = 0, i;
for(i = 0; i < n; i++){
if(s.charAt(i) == ' '){
t ++;
if(t == k) break;
}
}
return s.substring(0, i);
}
}