• 【噶】字符串-58. 最后一个单词的长度


    题目:给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。

    如果不存在最后一个单词,请返回 0 。

    说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。

    示例:

    输入: "Hello World"
    输出: 5

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/length-of-last-word

    解答:

    一开始用了indexOf然后分了空格在最后和不在最后,后来测试的时候发现这种解答是不对的,忽略了空格有多处,并且空格不止一个,后来从后往前遍历

     1 class Solution {
     2     public int lengthOfLastWord(String s) {
     3         int res = 0;
     4         if (s != null && s.length() > 0) {
     5             boolean flag = true;
     6             for (int i = s.length() - 1; i >= 0; i--) {
     7                 String chars = Character.toString(s.charAt(i));
     8                 if (!chars.equals(" ")) {
     9                     if (flag) {
    10                         res++;
    11                     }
    12                 } else {
    13                     // 空的,还没有遇到有值得
    14                     if (res == 0) {
    15                         flag = true;
    16                     } else {
    17                         flag = false;
    18                     }
    19                 }
    20             }
    21         }
    22         return res;
    23         
    24     }
    25 }

    好像过于繁琐了。。

    第7、8行可以直接 if (s.charAt(i) != ' ')

    最后看看别人的代码,精简下来是这样

     1         public static int lengthOfLastWord(String s) {
     2             int res = 0;
     3             if (s == null || s.length() == 0) return 0;
     4             for (int i = s.length() - 1; i >= 0; i--) {
     5                 if (s.charAt(i) == ' ') {
     6                     // 空的,还没有遇到有值得
     7                     if (res == 0) continue;
     8                     break;
     9                 }
    10                 res++;
    11             }
    12             return res;
    13         }

    字符和字符串互转

    Char——>String
    
    String s = String.valueOf('c'); //单个字符
    String s = String.valueOf(new char[]{'c'}); //转换数组
    String s = Character.toString('c');//实际上直接返回String.valueOf(char)
    String s = new Character('c').toString();
    String s = new String(new char[]{'c'});
    String s = "" + 'c';
    
    String——>Char
    
    String.charAt(index)//return char
    String.toCharArray()//return char[]
    越努力越幸运~ 加油ヾ(◍°∇°◍)ノ゙
  • 相关阅读:
    2018.5.22 Oracle安装配置在虚拟机中外部电脑连接服务
    2018.5.20 oracle强化练习
    2018.5.19 Oracle数据操作和管理表的综合练习
    2018.5.18 AndroidStudio创建项目出错
    2018.5.17 oracle函数查询
    2018.5.14 XML文档类型定义----DTD
    2018.5.13 oracle遇到的问题
    二元搜索算法(分治法)
    循环队列(弥补队列顺序储存的不足)
    队列的顺序储存
  • 原文地址:https://www.cnblogs.com/utomboy/p/13401856.html
Copyright © 2020-2023  润新知