华为机试题中,如何编写代码计算特定字符在字符串中出现的频率?

2026-05-22 10:002阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计587个文字,预计阅读时间需要3分钟。

华为机试题中,如何编写代码计算特定字符在字符串中出现的频率?

描述:编写一个程序,接受一个由字母、数字和空格组成的字符串和一个字符,然后输出该字符在输入字符串中出现的次数。(不区分大小写)

程序:

pythondef count_character(input_str, char): # 将输入字符串和字符都转换为小写,以便不区分大小写 input_str=input_str.lower() char=char.lower()

# 计算字符出现的次数 count=input_str.count(char)

# 输出结果 print(count)

示例input_str=input(请输入一个字符串:)char=input(请输入一个字符:)count_character(input_str, char)

描述

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

华为机试题中,如何编写代码计算特定字符在字符串中出现的频率?

数据范围: 1≤n≤1000

输入描述:

第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。

输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

解法思路

将输入字符串中的目标字符替换为空字符串“”(注意区分空格和空字符是不同的ascii码),每替换一次,原输入字符串的长度就会减少一,替换结束后的字符串长度和原输入字符串长度的差,便是目标字符在输入字符串出现的次数

代码实现

import java.util.Scanner; public class Main{ public static void main(String [] args){ Scanner sc = new Scanner(System.in); String srcStr = sc.nextLine().toLowerCase(); String tarChar = sc.nextLine().toLowerCase(); System.out.println(srcStr.length() - srcStr.replaceAll(tarChar,"").length()); } } 优缺点和拓展

优点:基于API编程,思路比较巧妙,可扩展性好

缺点:运行速度较慢于逐个字符做比较的查找方式

扩展:题目可以修改为统计目标字符串str在源字符串中出现的次数,整体思路相同,计算公式需要修改为:

count = (srcStr.length() - srcStr.replaceAll(tarStr,"").length())/tarStr.length()

题目链接

www.nowcoder.com/practice/a35ce98431874e3a820dbe4b2d0508b1

本文共计587个文字,预计阅读时间需要3分钟。

华为机试题中,如何编写代码计算特定字符在字符串中出现的频率?

描述:编写一个程序,接受一个由字母、数字和空格组成的字符串和一个字符,然后输出该字符在输入字符串中出现的次数。(不区分大小写)

程序:

pythondef count_character(input_str, char): # 将输入字符串和字符都转换为小写,以便不区分大小写 input_str=input_str.lower() char=char.lower()

# 计算字符出现的次数 count=input_str.count(char)

# 输出结果 print(count)

示例input_str=input(请输入一个字符串:)char=input(请输入一个字符:)count_character(input_str, char)

描述

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

华为机试题中,如何编写代码计算特定字符在字符串中出现的频率?

数据范围: 1≤n≤1000

输入描述:

第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。

输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

解法思路

将输入字符串中的目标字符替换为空字符串“”(注意区分空格和空字符是不同的ascii码),每替换一次,原输入字符串的长度就会减少一,替换结束后的字符串长度和原输入字符串长度的差,便是目标字符在输入字符串出现的次数

代码实现

import java.util.Scanner; public class Main{ public static void main(String [] args){ Scanner sc = new Scanner(System.in); String srcStr = sc.nextLine().toLowerCase(); String tarChar = sc.nextLine().toLowerCase(); System.out.println(srcStr.length() - srcStr.replaceAll(tarChar,"").length()); } } 优缺点和拓展

优点:基于API编程,思路比较巧妙,可扩展性好

缺点:运行速度较慢于逐个字符做比较的查找方式

扩展:题目可以修改为统计目标字符串str在源字符串中出现的次数,整体思路相同,计算公式需要修改为:

count = (srcStr.length() - srcStr.replaceAll(tarStr,"").length())/tarStr.length()

题目链接

www.nowcoder.com/practice/a35ce98431874e3a820dbe4b2d0508b1