l'éditeur php Baicao vous présente une méthode intéressante de résolution de problèmes - "golang répète continuellement le caractère le plus long". Le cœur de ce problème est de trouver le plus grand nombre de caractères consécutifs et leur numéro dans une chaîne. Dans Golang, nous pouvons réaliser cette fonction en parcourant chaque caractère de la chaîne et en utilisant des compteurs et des variables maximales. Avec cet algorithme simple et efficace, nous pouvons facilement résoudre ce problème et obtenir des résultats précis. Découvrons ensuite le processus de mise en œuvre spécifique !
package main import ( "fmt" ) type Result struct { C rune // character L int // count } func main() { fmt.Print(LongestRepetition("")) } func LongestRepetition(text string) Result { if text == "" { return Result{} } var max Result if len(text) == 1 { max.C = rune(text[0]) max.L = 1 return max } var count Result for _, s := range text { if count.C == s { count.L++ count.C = s if count.L > max.L { max.C = count.C max.L = count.L } } else { count.L = 1 count.C = s } } return max }
////
attendu
J'essaie de terminer https://www.codewars.com/kata/586d6cefbcc21eed7a001155/train/go Le caractère le plus long répété en continu Pour mes tests ça marche bien Mais quand j'appuie sur CW, le test de pliage ne parvient pas à être terminé. S'il vous plaît aidez-moi Peut-être que je peux améliorer mon code quelque part ou quelque chose qui me rend confus
Votre solution est trop compliquée. simplifier.
type result struct { c rune // character l int // count } func longestrepetition(text string) result { max := result{} r := result{} for _, c := range text { if r.c != c { r = result{c: c} } r.l++ if max.l < r.l { max = r } } return max }
Time: 1737ms Passed: 2 Failed: 0 Test Results: Fixed Tests it should work with the fixed tests Random Tests it should work with the random tests You have passed all of the tests! :)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!