【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则擅长于保持元素的自然排序或自定义排序,两者各具优势,适用于不同的开发场景。
47 1
|
28天前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
45 6
|
1月前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
2月前
|
存储 算法 Java
Java 中常用的数据结构
【10月更文挑战第20天】这些数据结构在 Java 编程中都有着广泛的应用,掌握它们的特点和用法对于提高编程能力和解决实际问题非常重要。
30 6
|
2月前
|
存储 缓存 算法
前端算法:优化与实战技巧的深度探索
【10月更文挑战第21天】前端算法:优化与实战技巧的深度探索
24 1
|
2月前
|
存储 Java 开发者
Java中的Map接口提供了一种优雅的方式来管理数据结构,使代码更加清晰、高效
【10月更文挑战第19天】在软件开发中,随着项目复杂度的增加,数据结构的组织和管理变得至关重要。Java中的Map接口提供了一种优雅的方式来管理数据结构,使代码更加清晰、高效。本文通过在线购物平台的案例,展示了Map在商品管理、用户管理和订单管理中的具体应用,帮助开发者告别混乱,提升代码质量。
31 1
|
20天前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
|
11天前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
6天前
|
监控 Java 开发者
深入理解Java中的线程池实现原理及其性能优化####
本文旨在揭示Java中线程池的核心工作机制,通过剖析其背后的设计思想与实现细节,为读者提供一份详尽的线程池性能优化指南。不同于传统的技术教程,本文将采用一种互动式探索的方式,带领大家从理论到实践,逐步揭开线程池高效管理线程资源的奥秘。无论你是Java并发编程的初学者,还是寻求性能调优技巧的资深开发者,都能在本文中找到有价值的内容。 ####
|
11天前
|
安全 Java 开发者
Java中的多线程编程:从基础到实践
本文深入探讨了Java多线程编程的核心概念和实践技巧,旨在帮助读者理解多线程的工作原理,掌握线程的创建、管理和同步机制。通过具体示例和最佳实践,本文展示了如何在Java应用中有效地利用多线程技术,提高程序性能和响应速度。
42 1