Maison > développement back-end > Golang > le corps du texte

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

王林
Libérer: 2024-02-11 15:24:10
avant
1108 Les gens l'ont consulté

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
}
Copier après la connexion

//// 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
}
Copier après la connexion
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! :)
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal