Heim >Backend-Entwicklung >Golang >Golang-Code zur Prüfung, ob das erste Wort aus einem zweiten Wort bestehen kann

Golang-Code zur Prüfung, ob das erste Wort aus einem zweiten Wort bestehen kann

WBOY
WBOYnach vorne
2024-02-10 23:40:18895Durchsuche

Golang 代码检查第一个单词是否可以由第二个单词组成

In Golang müssen wir oft prüfen, ob ein Wort aus Zeichen eines anderen Wortes zusammengesetzt sein kann. Diese Funktion ist in vielen Situationen nützlich, beispielsweise um festzustellen, ob eine Zeichenfolge eine Neuanordnung der Buchstaben einer anderen Zeichenfolge ist. In diesem Artikel stellt Ihnen der PHP-Editor Xinyi eine einfache und effiziente Methode vor, um diese Funktion zu erreichen. Mit dieser Methode können wir leicht feststellen, ob ein Wort aus Zeichen eines anderen Wortes bestehen kann, und so die Effizienz unseres Codes verbessern. Werfen wir einen Blick auf die konkrete Implementierungsmethode!

Frageninhalt

Ich habe den folgenden Golang-Code ausprobiert, um zu überprüfen, ob die erste Zeichenfolge aus der zweiten Zeichenfolge zusammengesetzt werden kann. Gibt es etwas, das an diesem Code verbessert werden könnte?

package main
import (
    "fmt"
    "strings"
)

func main() {

    words := []string{"hello", "ellhoo"}

    result := "NO"

    s := words[0]
    for i := 0; i < len(words[0]); i++ {
        if strings.Contains(words[1], string(s[i])) == false {
            result = "NO"
            break
        } else {
            result = "YES"
            words[1] = strings.Replace(words[1],string(s[i]),"",1)
        }
    }
    fmt.Println(result)

}

Workaround

Notieren Sie die Anzahl jeder Rune in der Quellzeichenfolge in der Karte. Für jede Rune in der Zielzeichenfolge schlägt ein Fehler fehl, wenn die Anzahl in der Karte Null ist. Runterzählen.

Der Code lautet wie folgt:

// canmake reports whether t can constructed from the runes in s.
func canmake(t, s string) bool {
    m := map[rune]int{}
    for _, r := range s {
        m[r]++
    }
    for _, r := range t {
        if m[r] == 0 {
            return false
        }
        m[r]--
    }
    return true
}

Das folgende Beispiel zeigt die Verwendung:

func main() {
    fmt.Println(canmake("hello", "ellhoo"))
    fmt.Println(canmake("hello", "elhoo")) // insufficent number of l
    fmt.Println(canmake("hello", "elloo")) // mising h
}

Das obige ist der detaillierte Inhalt vonGolang-Code zur Prüfung, ob das erste Wort aus einem zweiten Wort bestehen kann. 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