牛客华为机试HJ2
原题传送门
1. 问题描述
2. Solution
1、思路
遍历text,工作变量为c,c与key同时转为大写(或小写)比较,若相等则计数增1,遍历结束输出计数器即可。
2、实现
Java
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
Scanner in;
if (!"Linux".equals(System.getProperty("os.name"))) {
in = new Scanner(Paths.get("/Users/jun/Learn/JavaLearning/NowCoder/src/huawei/HJ002/input.txt"));
} else {
in = new Scanner(System.in);
}
while (in.hasNext()) {
String s = in.nextLine();
String key = in.nextLine();
solve(s, key.charAt(0));
}
}
private static void solve(String s, char key) {
int cnt = 0;
char keyLowerCase = Character.toLowerCase(key);
for (int i = 0; i < s.length(); i++) {
char c = Character.toLowerCase(s.charAt(i));
if (c == keyLowerCase)
cnt++;
}
System.out.println(cnt);
}
}
Python
import sys
if sys.platform != "linux":
file_in = open("input/HJ2.txt")
sys.stdin = file_in
def solve(text, key):
cnt = 0
for c in text:
if c.lower() == key.lower():
cnt += 1
print(cnt)
while True:
try:
text = input().strip()
key = input().strip()
solve(text, key)
except:
break
3、复杂度分析
时间复杂度: O(n)
空间复杂度: O(1)