题目来源:HJ1 字符串最后一个单词的长度
题目描述:
思路1: 将字符串中的单词进行拆分,放入String型的数组中,读取最后一个单词并求得长度
具体实现1:
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
String[] str1 = str.split(" ");
//split()根据匹配给定的正则表达式来拆分字符串,当前给定的是根据空格拆分
System.out.println(str1[str1.length-1].length());
}
- 时间复杂度:O(n)
- 空间复杂度:O(1)
思路2: 将字符串从尾向头开始遍历,遇到空格后停止,否则+1
具体实现2:
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
//nextLine()会获取整行的数据,包括字符串之间的空格,直到遇到回车
char[] chars = new char[str.length()];
str.getChars(0,str.length(),chars,0);
//getChars()将字符从字符串复制到目标字符数组
for(int i = str.length()-1; i >= 0; i--){
if(chars[i] == ' '){
System.out.println(str.length()-(i+1));
//此时i的位置在所求字符串的第一个字符的前一位,所以需要加1
}
}
}
- 时间复杂度:O(n)
- 空间复杂度:O(1)