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