思路
这道题拿到之后第一时间就会想到遍历整个字符串。
于是有了这样的解法:
Java版本解法
import java.util.Scanner;
public class Main {
public int convert(String str, String flag) {
String src = str.toLowerCase();
char[] chars = src.toCharArray();
char c = flag.toLowerCase().charAt(0);
int num = 0;
for (char aChar : chars) {
if (aChar == c) {
num++;
}
}
return num;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Main main = new Main();
while (in.hasNext()) {
String str = in.nextLine();
String str1 = in.nextLine();
System.out.println(main.convert(str, str1));
}
}
} C语言版本解法
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define SIZE 500
int main() {
char array[SIZE];
gets(array);
char target = getchar();
int count = 0, len = strlen(array);
for (int i = 0; i < len; i++)
{
if (toupper(array[i]) == toupper(target))
{
count += 1;
}
}
printf("%d\n", count);
return 0;
} 事实证明同样的算法,还是C语言有速度优势

京公网安备 11010502036488号