gpt4 book ai didi

algorithm - 每个字符连续出现之后

转载 作者:行者123 更新时间:2023-12-01 21:13:10 26 4
gpt4 key购买 nike

我正在使用Go解决此问题:
https://www.geeksforgeeks.org/printing-frequency-of-each-character-just-after-its-consecutive-occurrences/

package main

import (
"fmt"
"strconv"
"strings"
)

func main() {

str := "GeeeEEKKKss"
strArr := strings.Split(str, "")

for i := 0; i < len(strArr); i++ {

count := 1
nxtIdx := i + 1
for nxtIdx < len(strArr) && strArr[nxtIdx] == strArr[i] {
i++
count++
}

fmt.Print(strArr[i], strconv.Itoa(count))

}
fmt.Println()

}

当我直接使用i + 1代替“nxtIdx”变量时,我得到了预期的结果
:G1e3E2K3s2

https://play.golang.org/p/wJBpNbIzlNd

但是,当我使用“nxtIdx”变量时,我得到了意外的结果
:G1E4E1s4s1

https://play.golang.org/p/g8hejYTv2-0

最佳答案

因为您不增加影响循环迭代的循环内部的nxtIdx

nxtIdx := i + 1
for nxtIdx < len(strArr) && strArr[nxtIdx] == strArr[i] {
i++ // Here
count++
}

您还应该增加 nxtIdx
nxtIdx := i + 1
for nxtIdx < len(strArr) && strArr[nxtIdx] == strArr[i] {
i++
nxtIdx++
count++
}

关于algorithm - 每个字符连续出现之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62331900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com