题目的主要信息:

  • 给定一个字符串str,随机输入一个字母word
  • 判断该字母在这个字符串中出现的次数
  • 字母以字符串的形式输入

具体做法:

我们将输入的字母转化成char型字符,然后遍历字符串str,将每个遍历到的字符转化成char型后再与字母比较,如果相同则计数。

alt

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String string = "H e l l o ! n o w c o d e r";
        Scanner scanner= new Scanner(System.in);
        String word = scanner.next();
        scanner.close();
        System.out.println(check(string, word));
    }
    public static int check(String str, String word){
        char c = word.charAt(0); //将第二个字符串用字符表示
        int res = 0;
        for(int i = 0; i < str.length(); i++) //遍历第一个字符串
            if(c == str.charAt(i)) //比较每个字符与c是否相同
                res++; //相同则计数
        return res;
    }
}

复杂度分析:

  • 时间复杂度:O(n)O(n),其中nn为字符串str的长度,遍历该字符串
  • 空间复杂度:O(1)O(1),无额外空间