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

WBOY
Freigeben: 2024-02-10 23:40:18
nach vorne
880 Leute haben es durchsucht

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)

}
Nach dem Login kopieren

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

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

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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!