Skip to main content

2024-07-08 计算某字符出现次数 && 字符串最后一个单词的长度

MarshioAbout 1 minnowcodernowcoder

计算某字符出现次数

接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。

计算某字符出现次数open in new window

解题思路

简单说下思路,很简单的一道题,主要考察Java基础知识的应用。

亮点

  • char
  • 分情况判断
  • 时间复杂度为 O(1)
  • 空间复杂度为 O(1)

实现

public class Test004 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String input1 = in.nextLine();
        String input2 = in.nextLine();
        int count = 0;
        // System.out.print((int)' ');
        for (int i = 0; i < input1.length(); i++) {
            if (input2.charAt(0) == input1.charAt(i)) {
                count++;
                continue;
            }
            if (input2.charAt(0) == ' ') {
                continue;
            }
            if (input2.charAt(0) >= '1' && input2.charAt(0) <= '9') {
                continue;
            }
            // 字母的情况
            if (Math.abs((int)input2.charAt(0) - (int)input1.charAt(i)) == 32) {
                count++;
            }
        }
        System.out.print(count);
    }

}

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

解题思路

简单说下思路,很简单的一道题,主要考察Java基础知识的应用。

亮点

  • Scanner。
  • 时间复杂度为 O(1)
  • 空间复杂度为 O(1)

实现

public class Test003 {
    /**
     * 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
     * 输入:hello now coder
     * 输出:5
     *
     * @param args 输入一行,代表要计算的字符串,非空,长度小于5000。
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input = in.nextLine();
        if (!input.contains(" ")) {
            System.out.println(input.length());
            return;
        }
        String[] split = input.split(" ");
        System.out.println(split[split.length - 1].length());
    }
}