AcWing 774. 最长单词
原题链接
中等
解法一:Java双指针算法
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int max = 0, idx = 0;
for(int i = 0; i < s.length() - 1; ){
int j = i + 1, cnt;
while(j < s.length() - 1 && s.charAt(j) != ' '){
j ++;
}
cnt = j - i;
if(cnt > max){
max = cnt;
idx = i;
}
i = ++ j;
}
System.out.println(s.substring(idx, idx + max));
}
}
解法二:直接使用next
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String res = "";
while(sc.hasNext()){
String str = sc.next();
if(str.endsWith(".")){
str = str.substring(0, str.length() - 1);
}
if(str.length() > res.length()){
res = str;
}
}
System.out.println(res);
}
}