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

Golang wiederholt das längste Zeichen kontinuierlich

王林
王林nach vorne
2024-02-11 15:24:101095Durchsuche

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
}

//// 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
}
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! :)

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen