刷题日记2
程序员文章站
2024-03-23 10:48:52
...
[刷题日记]华为机试题:计算字符个数
功能:写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
输入要求: 第一行输入一个有字母和数字以及空格组成的字符串,第二行输入一个字符。
输出要求:输出输入字符串中含有该字符的个数。
第一种
直接字段遍历,用EqualFold:
package main
import (
"fmt"
"strings"
)
func numsStr(a string,b string) int{
count := 0
l := len(a)
for i := 0;i < l;i++{
if strings.EqualFold(a[i:i+1],b){
count++
}
}
return count
}
func main(){
var a, b string
fmt.Scan(&a)
fmt.Scan(&b)
fmt.Println(numsStr(a,b))
}
自己第一遍用遍历做的,内存占的相对别人的有点大,而且好像没有算法思想在里面。
第二种
根除查找字符的大小写,将字符串转换:
func numsStr(a string,b string) int{
count := 0
l := len(a)
if b >= "A" && b <= "Z"{
a = strings.ToUpper(a)
}else if b >= "a" && b <= "z"{
a = strings.ToLower(a)
}else{
a = a
}
for i := 0;i < l;i++{
if a[i:i+1] == b{
count++
}
}
return count
}
程序小白,只愿努力能实现自己的目标。
上一篇: go语言刷题:69. x 的平方根