Maison  >  Article  >  développement back-end  >  golang répète continuellement le caractère le plus long

golang répète continuellement le caractère le plus long

王林
王林avant
2024-02-11 15:24:101045parcourir

golang répète continuellement le caractère le plus long

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 !

Contenu des questions

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  : {c : 0, l : 0} égal  : {c : 98, l : 1}

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

Solution de contournement

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer