Problem: HJ2 计算某字符出现次数
题目描述
描述
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
数据范围:
输入描述:
第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。
输出描述:
输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例1
输入:
ABCabc
A
输出:2
解题思路
将字符串分割为字符数组,并且全部转为大写,并循环。
算法流程
- 输入字符串word,字符cha
- 定义count,统计
- 循环字符串
- 如果字符串当前字符等于cha,count加1
- 输出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);
}
}
复杂度
- 时间复杂度:
添加时间复杂度, 示例:
in.nextLine()方法的时间复杂度为O(n),其中n是输入字符串的长度。word.length()的时间复杂度为O(m),其中m是分割后的字符串数组的长度。- 总体的时间复杂度为。
- 空间复杂度:
添加空间复杂度, 示例:
in.nextLine()方法返回的字符串需要 的额外空间来存储。