欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

刷题日记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