面试题答案
一键面试package main
import (
"fmt"
)
func countL(s string) int {
count := 0
for _, char := range s {
if char == 'l' {
count++
}
}
return count
}
在上述代码中,使用了Go语言的字符串遍历方式:for _, char := range s
。这种方式会将字符串s
拆分成一个个的rune
(Go语言中字符的类型),然后依次赋值给char
。这里并没有使用特定的字符串处理函数,而是通过遍历字符串中的每个字符,逐个检查是否为目标字符'l'
,如果是则计数加1,最后返回计数结果。
- 遍历方式原理:
for _, char := range s
:range
关键字用于迭代字符串、数组、切片、映射等数据结构。在字符串的场景下,它会将字符串按rune
类型解析。_
表示忽略索引值(因为在这个场景下我们只关心字符本身,不关心其索引位置),char
则依次获取字符串中的每个rune
字符。
- 字符比较原理:
if char == 'l'
:Go语言中字符比较使用==
操作符,直接比较两个字符的rune
值是否相等。如果相等则说明找到了目标字符,将计数变量count
加1。
- 返回结果:
- 最后函数返回
count
,即字符'l'
在字符串中出现的次数。
- 最后函数返回
可以通过如下方式调用这个函数:
func main() {
s := "hello world"
result := countL(s)
fmt.Printf("字符 'l' 出现的次数: %d\n", result)
}