Dieses kommt ziemlich häufig vor. Hört sich schwierig an, ist aber nicht wirklich schlimm, wenn man es einmal durchdenkt.
Schreiben Sie eine Golang-Funktion, um zu prüfen, ob eine Zeichenfolge ein Palindrom ist.
Ein Palindrom ist eine Folge von Zeichen, die auch umgekehrt gleich sind, zum Beispiel:
"aba" ist ein Palindrom
"abb ist nicht
"ab a" wird von den meisten als Palindrom angesehen, daher ignorieren wir Leerzeichen.
func PalindromeCheck(str string) bool { trimmedStr := strings.ReplaceAll(str, " ", "") len := len(trimmedStr) chars := []rune(trimmedStr) for i := 0; iDiese Lösung ist funktional dieselbe, die Sie bei der Online-Suche für C oder Java finden. Wir verwenden im Wesentlichen Doppelzeiger, um vom Anfang bis zum Ende zu durchlaufen und nach einem nicht übereinstimmenden Zeichen zu suchen. Wenn eine Nichtübereinstimmung festgestellt wird, können wir erklären, dass die Zeichenfolge kein Palindrom ist.
Können wir es besser machen?
Gibt es eine bessere Möglichkeit, Leerzeichen zu entfernen, als strings.ReplaceAll zu verwenden? (Das gibt es, aber es kann hässlich werden)
Wie sieht es mit der Effizienz der Umwandlung in eine []Rune aus? Gibt es einen besseren Weg?Posten Sie Ihre Gedanken in den Kommentaren.
Danke!
Der Code für diesen Beitrag und alle Beiträge dieser Serie finden Sie hier
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3