これはかなり一般的です。難しそうに聞こえますが、よく考えてみるとそれほど悪くはありません。
文字列が回文かどうかをチェックする golang 関数を作成します。
回文は、逆にしても同じ文字のシーケンスです。例:
「aba」は回文です
「アブは違います
"ab a" はほとんどの場合回文とみなされているため、空白は無視されます。
func PalindromeCheck(str string) bool { trimmedStr := strings.ReplaceAll(str, " ", "") len := len(trimmedStr) chars := []rune(trimmedStr) for i := 0; iこのソリューションは、オンラインで検索したときに C または Java で見つかるものと機能的には同じです。基本的にデュアル ポインタを使用して、最初から最後までトラバースして、不一致の文字を探します。不一致が見つかった場合、その文字列は回文ではないと宣言できます。
もっと改善できないでしょうか?
strings.ReplaceAllを使用するよりも空白をトリミングするより良い方法はありますか? (ありますが、醜くなる可能性があります)
[]ルーンへの変換効率についてはどうですか。もっと良い方法はありますか?コメント欄に意見を投稿してください。
ありがとう!
この投稿とこのシリーズのすべての投稿のコードはここにあります
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3