Japanese subtitles

← 22-16 Palindromes Solution

22-16 Palindromes Solution

Get Embed Code
2 Languages

Showing Revision 1 created 07/21/2014 by osawakjvta.

  1. これがis_palindrome関数を定義する方法です
  2. 入力としてある文字列を選びそれをsとします
  3. まず基本ケースのテストを行います
  4. 基本ケースは文字列が空であるかどうかを
    見るためでしたので
  5. ただちにTrueを返すはずです
  6. ですからifを使い
    sが空の文字列であるかどうかチェックします
  7. もしそうであればTrueを返します
    これが基本ケースです
  8. elseの場合は再帰的ケースとなります
  9. 最初と最後の文字が同じかどうか
    テストする必要があります
  10. これを行うにあたって
    文字列のインデックス演算子を使うことができます
  11. s[0]は最初の文字s[-1]は最後の文字を表します
  12. 同じであれば
    文字列の他の部分もチェックする必要があります
  13. 同じでなければまずそのケースを完了させましょう
  14. 同じでなければそれは回文でないと分かります
  15. 最初と最後の文字が合わない場所を
    見つけたからであり
  16. すぐにFalseを返します
  17. 同じであればさらに難しい問題となります
  18. 再帰呼び出しを行い文字列の他の全文字が
    回文を形成しているかチェックします
  19. これが私たちの最初の文字列でした
  20. すべての文字がここに入っており
    同じものをチェックしました
  21. 今行うべきことは文字列の他の部分を取り出し
  22. 回文であるかどうかチェックすることです
  23. これは再帰呼び出しとなり
    is_palindromeを呼び出した結果を返します
  24. しかしsを渡す代わりに行いたいことは
  25. 最初の文字を除去してs[1]の位置から始まり
  26. 最後の文字を除去して
    s[-1]で終わる文字列を渡すことです
  27. そしてこの最後の値は含まないという
    インデクシングを思い出してください
  28. 最後のインデックスを-1とすることで
    文字列の最後の文字を取り去ることになります
  29. ですから最初にテストすることは基本ケースです
  30. 空の文字列を渡します
  31. 空の文字列は回文なのでTrueという結果になります
  32. 1文字の文字列であるaを試してみましょう
  33. これもやはり回文です 前からも後ろからも同じです
  34. これもTrueの値を返します
  35. また回文ではない文字列abを試してみると
    Falseを返します
  36. 長めの文字のテストとしてlevelを入れてみましょう
  37. Trueとなるはずです そうなりますね
  38. そして最も有名な回文である
    amanaplanacanalpanamaを試してみましょう
  39. ご覧のようにTrueを返します