day1 HJ1 字符串最后一个单词的长度

188 阅读1分钟

题目来源:HJ1 字符串最后一个单词的长度

题目描述:

image.png

思路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)