Nowcoder
[题目链接](https://www.nowcoder.com/practice/1d41c3ca1987422f86fd714453cae245)
思路
题意很直接:给你一个长度为 8 的字符串,问需要修改几个字符才能变成 "Nowcoder"。
那怎么做呢?逐个字符比较就行了。把输入字符串的每一位和目标串 "Nowcoder" 的对应位比较,不一样就计数加一,最后输出计数值。
注意目标串是 "Nowcoder" 而不是 "nowcoder"——首字母大写。从样例可以验证:输入 "nowcoder" 时,只有第一个字符 n 和 N 不同,输出 1;输入 "nOWcoDeR" 时,有 5 个位置不同,输出 5。
代码
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
cin >> s;
string target = "Nowcoder";
int cnt = 0;
for (int i = 0; i < 8; i++) {
if (s[i] != target[i]) cnt++;
}
cout << cnt << endl;
return 0;
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
String target = "Nowcoder";
int cnt = 0;
for (int i = 0; i < 8; i++) {
if (s.charAt(i) != target.charAt(i)) cnt++;
}
System.out.println(cnt);
}
}
s = input()
target = "Nowcoder"
print(sum(a != b for a, b in zip(s, target)))
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin });
rl.on('line', (s) => {
const target = "Nowcoder";
let cnt = 0;
for (let i = 0; i < 8; i++) {
if (s[i] !== target[i]) cnt++;
}
console.log(cnt);
rl.close();
});
复杂度分析
- 时间复杂度:
,字符串长度固定为 8,比较次数恒定。
- 空间复杂度:
,只用了常数个变量。

京公网安备 11010502036488号