【Java 数据结构及算法实战】系列 015:HJ1 字符串最后一个单词的长度

简介: 描述计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。输出描述:输出一个整数,表示输入字符串最后一个单词的长度。解法

描述

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:

输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:

输出一个整数,表示输入字符串最后一个单词的长度。
解法

该题型主要是考察字符串的操作。解法步骤如下

输入一行,代表要计算的字符串,非空,长度小于5000。

按照空格对输入字符串进行分组

取数据组中最后一个元素

输出一个整数,表示输入字符串最后一个单词的长度。

代码如下:

  • Copyright (c) waylau.com, 2022. All rights reserved.

*/
package com.waylau.nowcoder.exam.oj.huawei;import java.util.Scanner;/**

  • HJ1 字符串最后一个单词的长度.
  • 描述:计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
  • 输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。
  • 输出描述:输出一个整数,表示输入字符串最后一个单词的长度。

*

  • @author Way Lau
  • @since 2022-08-05

*/public class HJ1LengthOfTheLastWordInTheString {

public static void main(String[] args) {        // 输入一行,代表要计算的字符串,非空,长度小于5000。
    Scanner sc = new Scanner(System.in);
    String in = sc.nextLine();        
    // 按照空格对输入字符串进行分组
    String[] words = in.split(" ");        
    // 取数据组中最后一个元素
    String lastWord = words[words.length - 1];        
    // 输出一个整数,表示输入字符串最后一个单词的长度。
    System.out.println(lastWord.length());        
    // 关闭资源
    sc.close();
}

}

用到了String的split、length方法,同时也用到了数组。代码运行结果如下。

hello world

5
解法2

也可以采用字符的操作。解法步骤如下

输入一行,代表要计算的字符串,非空,长度小于5000。

对输入字符串进行倒序遍历,遇到第一个空格则停止

遍历的非空字符数即为最后一个单词的长度

输出一个整数,表示输入字符串最后一个单词的长度。



  • Copyright (c) waylau.com, 2022. All rights reserved.

*/
package com.waylau.nowcoder.exam.oj.huawei;import java.util.Scanner;/**

  • HJ1 字符串最后一个单词的长度.
  • 描述:计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
  • 输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。
  • 输出描述:输出一个整数,表示输入字符串最后一个单词的长度。

*

  • @author Way Lau
  • @since 2022-08-05

*/public class HJ1LengthOfTheLastWordInTheString2 {

public static void main(String[] args) {        // 输入一行,代表要计算的字符串,非空,长度小于5000。
    Scanner sc = new Scanner(System.in);
    String in = sc.nextLine();        
    // 对输入字符串进行倒序遍历,遇到第一个空格则停止.
    // 遍历的非空字符数即为最后一个单词的长度
    int lastWordLength = 0;        for (int i = in.length() -1 ; i >=0; i--) {            char c = in.charAt(i);            
        if (c == ' ') {                break;
        }
        
        lastWordLength ++;
    }        
    // 输出一个整数,表示输入字符串最后一个单词的长度。
    System.out.println(lastWordLength);        
    // 关闭资源
    sc.close();
}

}

参考引用

本系列归档至https://github.com/waylau/nowcoder-exam-oj

《Java 数据结构及算法实战》:https://github.com/waylau/java-data-structures-and-algorithms-in-action

《数据结构和算法基础(Java 语言实现)》(柳伟卫著,北京大学出版社出版):https://item.jd.com/13014179.html      
描述

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:

输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:

输出一个整数,表示输入字符串最后一个单词的长度。
解法

该题型主要是考察字符串的操作。解法步骤如下

输入一行,代表要计算的字符串,非空,长度小于5000。

按照空格对输入字符串进行分组

取数据组中最后一个元素

输出一个整数,表示输入字符串最后一个单词的长度。

代码如下:



 * Copyright (c) waylau.com, 2022. All rights reserved.
 */ 
package com.waylau.nowcoder.exam.oj.huawei;import java.util.Scanner;/**
 * HJ1 字符串最后一个单词的长度.
 * 描述:计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
 * 输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。
 * 输出描述:输出一个整数,表示输入字符串最后一个单词的长度。
 *
 * @author <a href="https://waylau.com">Way Lau</a>
 * @since 2022-08-05
 */public class HJ1LengthOfTheLastWordInTheString {

    public static void main(String[] args) {        // 输入一行,代表要计算的字符串,非空,长度小于5000。
        Scanner sc = new Scanner(System.in);
        String in = sc.nextLine();        
        // 按照空格对输入字符串进行分组
        String[] words = in.split(" ");        
        // 取数据组中最后一个元素
        String lastWord = words[words.length - 1];        
        // 输出一个整数,表示输入字符串最后一个单词的长度。
        System.out.println(lastWord.length());        
        // 关闭资源
        sc.close();
    }
}


用到了String的split、length方法,同时也用到了数组。代码运行结果如下。

hello world

5
解法2

也可以采用字符的操作。解法步骤如下

输入一行,代表要计算的字符串,非空,长度小于5000。

对输入字符串进行倒序遍历,遇到第一个空格则停止

遍历的非空字符数即为最后一个单词的长度

输出一个整数,表示输入字符串最后一个单词的长度。

 


 * Copyright (c) waylau.com, 2022. All rights reserved.
 */ 
package com.waylau.nowcoder.exam.oj.huawei;import java.util.Scanner;/**
 * HJ1 字符串最后一个单词的长度.
 * 描述:计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
 * 输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。
 * 输出描述:输出一个整数,表示输入字符串最后一个单词的长度。
 *
 * @author <a href="https://waylau.com">Way Lau</a>
 * @since 2022-08-05
 */public class HJ1LengthOfTheLastWordInTheString2 {

    public static void main(String[] args) {        // 输入一行,代表要计算的字符串,非空,长度小于5000。
        Scanner sc = new Scanner(System.in);
        String in = sc.nextLine();        
        // 对输入字符串进行倒序遍历,遇到第一个空格则停止.
        // 遍历的非空字符数即为最后一个单词的长度
        int lastWordLength = 0;        for (int i = in.length() -1 ; i >=0; i--) {            char c = in.charAt(i);            
            if (c == ' ') {                break;
            }
            
            lastWordLength ++;
        }        
        // 输出一个整数,表示输入字符串最后一个单词的长度。
        System.out.println(lastWordLength);        
        // 关闭资源
        sc.close();
    }
}

参考引用

本系列归档至https://github.com/waylau/nowcoder-exam-oj

《Java 数据结构及算法实战》:https://github.com/waylau/java-data-structures-and-algorithms-in-action

《数据结构和算法基础(Java 语言实现)》(柳伟卫著,北京大学出版社出版):https://item.jd.com/13014179.html

描述

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:

输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:

输出一个整数,表示输入字符串最后一个单词的长度。
解法

该题型主要是考察字符串的操作。解法步骤如下

输入一行,代表要计算的字符串,非空,长度小于5000。

按照空格对输入字符串进行分组

取数据组中最后一个元素

输出一个整数,表示输入字符串最后一个单词的长度。

代码如下:

  • Copyright (c) waylau.com, 2022. All rights reserved.

*/
package com.waylau.nowcoder.exam.oj.huawei;import java.util.Scanner;/**

  • HJ1 字符串最后一个单词的长度.
  • 描述:计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
  • 输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。
  • 输出描述:输出一个整数,表示输入字符串最后一个单词的长度。

*

  • @author Way Lau
  • @since 2022-08-05

*/public class HJ1LengthOfTheLastWordInTheString {

public static void main(String[] args) {        // 输入一行,代表要计算的字符串,非空,长度小于5000。
    Scanner sc = new Scanner(System.in);
    String in = sc.nextLine();        
    // 按照空格对输入字符串进行分组
    String[] words = in.split(" ");        
    // 取数据组中最后一个元素
    String lastWord = words[words.length - 1];        
    // 输出一个整数,表示输入字符串最后一个单词的长度。
    System.out.println(lastWord.length());        
    // 关闭资源
    sc.close();
}

}

用到了String的split、length方法,同时也用到了数组。代码运行结果如下。

hello world

5
解法2

也可以采用字符的操作。解法步骤如下

输入一行,代表要计算的字符串,非空,长度小于5000。

对输入字符串进行倒序遍历,遇到第一个空格则停止

遍历的非空字符数即为最后一个单词的长度

输出一个整数,表示输入字符串最后一个单词的长度。



  • Copyright (c) waylau.com, 2022. All rights reserved.

*/
package com.waylau.nowcoder.exam.oj.huawei;import java.util.Scanner;/**

  • HJ1 字符串最后一个单词的长度.
  • 描述:计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
  • 输入描述:输入一行,代表要计算的字符串,非空,长度小于5000。
  • 输出描述:输出一个整数,表示输入字符串最后一个单词的长度。

*

  • @author Way Lau
  • @since 2022-08-05

*/public class HJ1LengthOfTheLastWordInTheString2 {

public static void main(String[] args) {        // 输入一行,代表要计算的字符串,非空,长度小于5000。
    Scanner sc = new Scanner(System.in);
    String in = sc.nextLine();        
    // 对输入字符串进行倒序遍历,遇到第一个空格则停止.
    // 遍历的非空字符数即为最后一个单词的长度
    int lastWordLength = 0;        for (int i = in.length() -1 ; i >=0; i--) {            char c = in.charAt(i);            
        if (c == ' ') {                break;
        }
        
        lastWordLength ++;
    }        
    // 输出一个整数,表示输入字符串最后一个单词的长度。
    System.out.println(lastWordLength);        
    // 关闭资源
    sc.close();
}

}

参考引用

本系列归档至https://github.com/waylau/nowcoder-exam-oj

《Java 数据结构及算法实战》:https://github.com/waylau/java-data-structures-and-algorithms-in-action

《数据结构和算法基础(Java 语言实现)》(柳伟卫著,北京大学出版社出版):https://item.jd.com/13014179.html    http://product.dangdang.com/29334623.html

​


目录
相关文章
|
2月前
|
存储 Java
Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。
【10月更文挑战第19天】本文详细介绍了Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。HashMap以其高效的插入、查找和删除操作著称,而TreeMap则擅长于保持元素的自然排序或自定义排序,两者各具优势,适用于不同的开发场景。
48 1
|
5天前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
26 5
|
1月前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
47 6
|
1月前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
2月前
|
存储 算法 Java
Java 中常用的数据结构
【10月更文挑战第20天】这些数据结构在 Java 编程中都有着广泛的应用,掌握它们的特点和用法对于提高编程能力和解决实际问题非常重要。
31 6
|
3月前
|
Java
java数据结构,双向链表的实现
文章介绍了双向链表的实现,包括数据结构定义、插入和删除操作的代码实现,以及双向链表的其他操作方法,并提供了完整的Java代码实现。
java数据结构,双向链表的实现
|
7月前
|
存储 Java
Java数据结构:链表
Java数据结构:链表
49 2
|
2月前
|
存储 安全 Java
【用Java学习数据结构系列】探索顺序表和链表的无尽秘密(附带练习唔)pro
【用Java学习数据结构系列】探索顺序表和链表的无尽秘密(附带练习唔)pro
27 3
|
6月前
|
算法 Java
Java数据结构与算法:双向链表
Java数据结构与算法:双向链表
|
6月前
|
算法 Java
Java数据结构与算法:循环链表
Java数据结构与算法:循环链表