Heim > Backend-Entwicklung > Golang > Golang wiederholt das längste Zeichen kontinuierlich

Golang wiederholt das längste Zeichen kontinuierlich

王林
Freigeben: 2024-02-11 15:24:10
nach vorne
1132 Leute haben es durchsucht

Golang wiederholt das längste Zeichen kontinuierlich

php-Editor Baicao stellt Ihnen eine interessante Methode zur Problemlösung vor – „Golang wiederholt kontinuierlich das längste Zeichen“. Der Kern dieses Problems besteht darin, die am häufigsten aufeinanderfolgenden Zeichen und deren Anzahl in einer Zeichenfolge zu finden. In Golang können wir diese Funktion erreichen, indem wir jedes Zeichen der Zeichenfolge durchlaufen und Zähler und Maximalvariablen verwenden. Mit diesem einfachen und effizienten Algorithmus können wir dieses Problem leicht lösen und genaue Ergebnisse erhalten. Lassen Sie uns als Nächstes mehr über den spezifischen Implementierungsprozess erfahren!

Frageninhalt

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
}
Nach dem Login kopieren

//// erwartet : {c: 0, l: 0} gleich : {c: 98, l: 1}

Ich versuche, https://www.codewars.com/kata/586d6cefbcc21eed7a001155/train/go abzuschließen Das am längsten kontinuierlich wiederholte Zeichen Für meine Tests funktioniert es gut Aber wenn ich auf CW drücke, kann der Biegetest nicht abgeschlossen werden Bitte hilf mir Vielleicht kann ich meinen Code irgendwo verbessern oder etwas, worüber ich verwirrt bin

Workaround

Ihre Lösung ist zu kompliziert. vereinfachen.

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
}
Nach dem Login kopieren
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! :)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonGolang wiederholt das längste Zeichen kontinuierlich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage