HJ2 计算某字符出现次数

105 阅读1分钟

Problem: HJ2 计算某字符出现次数

题目描述

描述

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
数据范围:1n10001≤n≤1000

输入描述:

第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。

输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

示例1

输入:ABCabc
A
输出:2

解题思路

将字符串分割为字符数组,并且全部转为大写,并循环。

算法流程

  1. 输入字符串word,字符cha
  2. 定义count,统计
  3. 循环字符串
  4. 如果字符串当前字符等于cha,count加1
  5. 输出count

代码

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        // 注意 hasNext 和 hasNextLine 的区别
        String word = in.nextLine().toUpperCase();
        String cha = in.nextLine().toUpperCase();
        int count = 0;
        for(int i = 0; i < word.length(); i++) {
            if(word.charAt(i) == cha.charAt(0)) count++;
        }
        System.out.print(count);
    }
}

复杂度

  • 时间复杂度:

添加时间复杂度, 示例: O(n)O(n)

  • in.nextLine()方法的时间复杂度为O(n),其中n是输入字符串的长度。
  • word.length()的时间复杂度为O(m),其中m是分割后的字符串数组的长度。
  • 总体的时间复杂度为O(n+m)O(n + m)
  • 空间复杂度:

添加空间复杂度, 示例: O(n)O(n)

  • in.nextLine()方法返回的字符串需要O(n)O(n) 的额外空间来存储。