ホームページ > バックエンド開発 > Golang > 文字列を回文チェックする

文字列を回文チェックする

PHPz
リリース: 2024-07-17 13:36:15
オリジナル
1247 人が閲覧しました

Palindrome check a string

これはかなり一般的です。難しそうに思えますが、よく考えてみるとそれほど悪くありません。

文字列が回文かどうかをチェックする golang 関数を作成します。

回文は、逆にしても同じ文字のシーケンスです。例:

  • 「aba」は回文です

  • 「アブは

  • ではありません」
  • 「ab a」はほとんどの場合回文とみなされ、空白は無視されます。

func PalindromeCheck(str string) bool {
    trimmedStr := strings.ReplaceAll(str, " ", "")
    len := len(trimmedStr)
    chars := []rune(trimmedStr)
    for i := 0; i < len/2; i++ {
        if chars[i] != chars[len-i-1] {
            return false
        }
    }
    return true
}
ログイン後にコピー

このソリューションは、オンラインで検索したときに C または Java で見つかるものと機能的には同じです。基本的にデュアル ポインタを使用して、最初から最後までトラバースして不一致の文字を探します。不一致が見つかった場合、その文字列は回文ではないと宣言できます。

もっと改善できないでしょうか?
strings.ReplaceAllを使用するよりも空白をトリミングするより良い方法はありますか? (ありますが、醜くなる可能性があります)
[]ルーンへの変換効率についてはどうでしょうか。もっと良い方法はありますか?

コメント欄に意見を投稿してください。

ありがとうございます!

この投稿とこのシリーズのすべての投稿のコードはここにあります

以上が文字列を回文チェックするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート