CodeGym/Java Blog/рдЕрдирд┐рдпрдорд┐рдд/рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рдкреИрд▓рд┐рдВрдбреН...
John Squirrels
рд╕реНрддрд░ 41
San Francisco

рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╣реИ

рдЕрдирд┐рдпрдорд┐рдд рдЧреНрд░реБрдк рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд
рд╕рджрд╕реНрдп
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдХреНрд▓рд╛рд╕рд┐рдХ рдХрд╛ рджрд░реНрдЬрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдРрд╕реЗ рдХрд╛рд░реНрдп рдЧрдгрд┐рдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╡реЗ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдиреМрдХрд░реА рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЛрдВ рд╕реЗ рдкреВрдЫрдиреЗ рдХреЗ рдмрд╣реБрдд рд╢реМрдХреАрди рд╣реЛрддреЗ рд╣реИрдВред рд╡реЗ рдЕрдЪреНрдЫреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рддрд░реАрдХреЗ рд╕реЗ рдЖрдкрдХреА рд╕реЛрдЪ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЗрд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рднреА рдХрд░рддреЗ рд╣реИрдВред рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣реА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЙрдирдХреА рддрд▓рд╛рд╢ рдХреНрдпреЛрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ

рд╡рд┐рд▓реЛрдордкрдж рдПрдХ рд╕рдВрдЦреНрдпрд╛, рдЕрдХреНрд╖рд░ рд╕рдВрдпреЛрдЬрди, рд╢рдмреНрдж рдпрд╛ рдкрд╛рда рд╣реИ рдЬреЛ рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рд╕рдорд╛рди рдкрдврд╝рддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рдХреЛ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдХреЛрдИ рднреА рд╕реЗрдЯ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдордзреНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдордорд┐рдд рд╣реИред рдпрд╣ рд╢рдмреНрдж рдЧреНрд░реАрдХ рдореВрд▓ рд╕реЗ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╢рд╛рдмреНрджрд┐рдХ рдЕрд░реНрде рд╣реИ "рд╡рд╛рдкрд╕ рджреМрдбрд╝рдирд╛" (рдкреИрд▓рд┐рди "рдлрд┐рд░ рд╕реЗ, рдкреАрдЫреЗ," рдФрд░ рдбреНрд░реЛрдореЛрд╕, "рдЪрд▓ рд░рд╣рд╛ рд╣реИ")ред рдЬрд╛рд╡рд╛ рдореЗрдВ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рдХрд╛ рдЕрд░реНрде рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрде рдХреЗ рд╕рдорд╛рди рд╣реИред рд╡рд┐рд▓реЛрдордкрдж рдХреЗ рдЙрджрд╛рд╣рд░рдг:
  • 1881
  • aqquqqa
  • рдЬрд▓реНрджреА рд╕реЗ рдЖрдирд╛
  • рджреЛрдкрд╣рд░
  • рд╕реНрддрд░
  • рдЕрдВрдЧ рдХреЛ рдШреБрдорд╛рдиреЗрд╡рд╛рд▓реА рдкреЗрд╢реА
  • рдореЗрд░рд╛ рдЬрд┐рдо
  • рдореИрдбрдо рдореИрдВ рдПрдбрдо рд╣реВрдБ
  • рдЕрдм, рд╕рд░, рдПрдХ рдпреБрджреНрдз рдЬреАрдд рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!
1881 рдПрдХ рд╡рд┐рд▓реЛрдордкрдж рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рд╡рд┐рд▓реЛрдордкрдж рддрд╛рд░ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЙрди рдкреИрд▓рд┐рдВрдбреНрд░реЛрдореЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЬрд╛рд╡рд╛ рдореЗрдВ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдореЛрдВ рдкрд░ рдХрд╛рдлреА рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдк рд╡рд┐рд▓реЛрдордкрджреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдореЗрдВ рдЕрдХреНрд╕рд░ рджреИрдирд┐рдХ рдЬреАрд╡рди рдореЗрдВ рд╡рд┐рд▓реЛрдордкрджреЛрдВ рдХреА рддрд▓рд╛рд╢ рдирд╣реАрдВ рдХрд░рдиреА рдкрдбрд╝рддреА рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рд╣реИред рдпрджрд┐ рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЦреЛрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рдпрд╛ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЦреЛрдЬ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВред рдкрд╣рд▓рд╛ рдУрд▓рдВрдкрд┐рдпрд╛рдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╣реИред рд╡рд┐рд▓реЛрдордкрджреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдиреМрд╕рд┐рдЦрд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рджреВрд╕рд░рд╛ рдЖрд╡реЗрджрди рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рд╣реИред рдПрдХ рддрдХрдиреАрдХреА рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ, рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╣реИ, рд╢рд╛рдпрдж рдХрд╛рдЧрдЬ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдкрд░ рднреАред рдареАрдХ рд╣реИ, рд╡рд┐рдЬреНрдЮрд╛рди рдореЗрдВ, рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рдЦреЛрдЬрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреИрд╡рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬреИрд╡рд┐рдХ рдпреМрдЧрд┐рдХреЛрдВ рдХреА рдкреИрд▓рд┐рдВрдбреНрд░реЛрдорд╛рдЗрд╕рд┐рдЯреА рд╡рд┐рднрд┐рдиреНрди рдЬреИрд╡рд┐рдХ рдпреМрдЧрд┐рдХреЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреА рд╣реИред

рд╡рд┐рд▓реЛрдордкрдж рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЛрдб рдЙрджрд╛рд╣рд░рдг

рд╣рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реИ, рдХреЛрдИ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ, рдЪрд╛рд░ рдХреА рдПрдХ рд╕рд░рдгреАред рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рд╕реЗ рдордзреНрдп рддрдХ рдЗрд╕ рдХреНрд░рдо рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдирд╛ рдФрд░ рдЪрд░рдо рд╡рд░реНрдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред рдпрджрд┐ рдордзреНрдп рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рддрдХ рд╣рдорд╛рд░реЗ рд╕рднреА рдкрд╛рддреНрд░ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд▓реЛрдордкрдж рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрдП рдПрдХ рдмреВрд▓рд┐рдпрди рд╡рд┐рдзрд┐ рд╡реИрд▓рд┐рдбрдкреИрд▓рд┐рдВрдбреНрд░реЛрдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрд╕) рдмрдирд╛рдПрдВред рдЬрд╛рд╡рд╛ рдХреЛрдб рдпрд╣рд╛рдБ рд╣реИ:
public class PalindromeTest1 {

//method to check if a string is palindrome
public static boolean validPalindrome(String s) {
       for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
           if (s.charAt(i) != s.charAt(j)) {
               return false;
           }
       }
       return true;
   }

   public static void main(String[] args) {
       String s1 = "level";
       String s2 = "cool";
       String s3 = "Madam";
       String s4 = "Now, sir, a war is won!"
       boolean b1 = validPalindrome(s1);
       boolean b2 = validPalindrome(s2);
       boolean b3 = validPalindrome(s3);
       boolean b4 = validPalindrome(s4);
       System.out.println("is " + s1 + " a palindrome? " + b1);
       System.out.println("is " + s2 + " a palindrome? " + b2);
       System.out.println("is " + s3 + " a palindrome? " + b3);
       System.out.println("is " + s4 + " a palindrome? " + b4);


   }

}
рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдо рдкреИрд▓рд┐рдВрдбреНрд░реЛрдорд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ "рд▓реЗрд╡рд▓", "рдХреВрд▓", "рдореИрдбрдо" рдФрд░ "рдирд╛рдЙ, рд╕рд░, рдП рд╡реЙрд░ рдЗрдЬрд╝ рд╡рд┐рди!" рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓рд╛, рддреАрд╕рд░рд╛ рдФрд░ рдЪреМрдерд╛ рд╡рд┐рд▓реЛрдордкрдж рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреВрд╕рд░рд╛ рдирд╣реАрдВ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреНрдпрд╛ рджреЗрдЧрд╛?
рд╕реНрддрд░ рдПрдХ рд╡рд┐рд▓реЛрдордкрдж рд╣реИ? рдЯреНрд░реВ рдЗрдЬ рдХреВрд▓ рдП рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо? рдЭреВрдард╛ рдореИрдбрдо рд╡рд┐рд▓реЛрдордкрдж рд╣реИ? рдЭреВрдард╛ рд╣реИ рдЕрдм, рд╢реНрд░реАрдорд╛рди, рдПрдХ рдпреБрджреНрдз рдЬреАрдд рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ! рдПрдХ рд╡рд┐рд▓реЛрдордкрдж? рдЕрд╕рддреНрдп
рддреЛ, рдкрд╣рд▓рд╛ рд╡рд┐рд▓реЛрдордкрдж рд╣реИ, рджреВрд╕рд░рд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рддреАрд╕рд░реЗ рдФрд░ рдЪреМрдереЗ рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ? рдирддреАрдЬрд╛ рдЭреВрдард╛ рдХреНрдпреЛрдВ рд╣реИ ? рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдХреБрдЫ рдЕрдХреНрд╖рд░ рдЕрдкрд░рдХреЗрд╕ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд▓реЛрдЕрд░рдХреЗрд╕ рд╣реИрдВ, рдФрд░ рдЬрд╛рд╡рд╛ рдПрдо рдФрд░ рдПрдо рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдг рд╣реИрдВред рдЖрдЗрдП рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВред рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╣реИ рдЬреЛ рдЕрдкрд░рдХреЗрд╕ рдФрд░ рд▓реЛрдЕрд░рдХреЗрд╕ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
public class PalindromeTest2 {

   //lowercase and uppercase characters should be treated the same:
   public static boolean validPalindrome(String s) {
       for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
           if (Character.toLowerCase(s.charAt(i)) != Character.toLowerCase(s.charAt(j)))
               return false;
       }
       return true;
   }

   public static void main(String[] args) {
       String s1 = "level";
       String s2 = "cool";
       String s3 = "Madam";
        String s4 = "Now, sir, a war is won!"
       boolean b1 = validPalindrome(s1);
       boolean b2 = validPalindrome(s2);
       boolean b3 = validPalindrome(s3);
       boolean b4 = validPalindrome(s4);
       System.out.println("is " + s1 + " a palindrome? " + b1);
       System.out.println("is " + s2 + " a palindrome? " + b2);
       System.out.println("is " + s3 + " a palindrome? " + b3);
       System.out.println("is " + s4 + " a palindrome? " + b4);


   }

}
рдЗрд╕ рдмрд╛рд░ рдкрд░рд┐рдгрд╛рдо рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ:
рд╕реНрддрд░ рдПрдХ рд╡рд┐рд▓реЛрдордкрдж рд╣реИ? рдЯреНрд░реВ рдЗрдЬ рдХреВрд▓ рдП рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо? рдЭреВрдард╛ рдореИрдбрдо рд╡рд┐рд▓реЛрдордкрдж рд╣реИ? рд╕рдЪ рд╣реИ рдЕрдм, рд╢реНрд░реАрдорд╛рди, рдПрдХ рдпреБрджреНрдз рдЬреАрдд рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ! рдПрдХ рд╡рд┐рд▓реЛрдордкрдж? рдЕрд╕рддреНрдп
рдареАрдХ рд╣реИ ... рдмрд┐рд▓реНрдХреБрд▓ рдЕрдиреБрдорд╛рдирд┐рдд рдирд╣реАрдВ рд╣реИред "рдореИрдбрдо" рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдмреЗрд╣рддрд░ рд╣реЛ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рдВрдмреЗ рдФрд░ рдЦреБрд╢рд╣рд╛рд▓ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо "рдЕрдм, рд╕рд░, рдПрдХ рдпреБрджреНрдз рдЬреАрдд рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!" рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ред рдпрд╣ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ рдХрд┐ рд╕рднреА рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдЬрд╛рд╡рд╛ рдХреЗ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рдЪреВрдХ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рджреНрдо рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЖрдЗрдП рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрдиреЛрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рдирд╛ рд╕рд┐рдЦрд╛рдПрдВред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ рддреЛ рд╣рдо рд╕рднреА рдЧреИрд░-рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рд╡рд░реНрдгреЛрдВ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЬрд╛рд╡рд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИред
public class PalindromeTest3 {

   //in addition to the above, ignore all non alphanumeric chars like punctuation and spaces
   private static boolean isAlphanumeric(char c) {
       return Character.isAlphabetic(c) || Character.isDigit(c);
   }

   public static boolean validPalindromeIgnorePunctuation(String s) {
       for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
           // skip chars we should ignore
           while (j >= 0 && !isAlphanumeric(s.charAt(j))) j--;
           while (i < s.length() && !isAlphanumeric(s.charAt(i))) i++;
           // overskipped -> nothing left to validate
           if (i >= j) return true;

           if (Character.toLowerCase(s.charAt(i)) != Character.toLowerCase(s.charAt(j)))
               return false;
       }
       return true;
   }


   public static void main(String[] args) {
       String s1 = "level";
       String s2 = "cool";
       String s3 = "Madam";
       String s4 = "Now, sir, a war is won!";
       boolean b1 = validPalindromeIgnorePunctuation(s1);
       boolean b2 = validPalindromeIgnorePunctuation(s2);
       boolean b3 = validPalindromeIgnorePunctuation(s3);
       boolean b4 = validPalindromeIgnorePunctuation(s4);
       System.out.println("is " + s1 + " a palindrome? " + b1);
       System.out.println("is " + s2 + " a palindrome? " + b2);
       System.out.println("is " + s3 + " a palindrome? " + b3);
       System.out.println("is " + s4 + " a palindrome? " + b4);


   }

}
рдХрдо рд╕реЗ рдХрдо рдкрд░рд┐рдгрд╛рдо рд╡рд╣реА рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЙрдореНрдореАрдж рдереА:
рд╕реНрддрд░ рдПрдХ рд╡рд┐рд▓реЛрдордкрдж рд╣реИ? рдЯреНрд░реВ рдЗрдЬ рдХреВрд▓ рдП рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо? рдЭреВрдард╛ рдореИрдбрдо рд╡рд┐рд▓реЛрдордкрдж рд╣реИ? рд╕рдЪ рд╣реИ рдЕрдм, рд╢реНрд░реАрдорд╛рди, рдПрдХ рдпреБрджреНрдз рдЬреАрдд рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ! рдПрдХ рд╡рд┐рд▓реЛрдордкрдж? рд╕рддреНрдп
рд╢рд╛рдпрдж, рдпрджрд┐ рдЖрдк рдЕрднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдФрд░ рддреБрд▓рдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдкрд╛рддреНрд░реЛрдВ рдХреА рд╕рд░рдгреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╣реБрдд рд╣реА рдорд╛рд░реНрдЧ рдХрд╛ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо рд╣реИ, рддреЛ рдЖрдк рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП StringBuffer.reverse рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЧреИрд░-рдЕрд▓реНрдлрд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рдкреНрд░рддреАрдХреЛрдВ рдФрд░ рдЕрдкрд░рдХреЗрд╕ рдФрд░ рд▓реЛрдЕрд░рдХреЗрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдВрд╕реНрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВред
public class PalindromeTest5 {

   public static boolean validPalindrome(String s) {

       StringBuffer buffer = new StringBuffer(s);
       buffer.reverse();
       String data = buffer.toString();

       if (s.equals(data)) {
           return true;
       }
       return false;
   }
   public static void main(String[] args) {
       String s1 = "level";
       String s2 = "cool";
       String s3 = "Madam";
       String s4 = "Now, sir, a war is won!";
       boolean b1 = validPalindrome(s1);
       boolean b2 = validPalindrome(s2);
       boolean b3 = validPalindrome(s3);
       boolean b4 = validPalindrome(s4);
       System.out.println("is " + s1 + " a palindrome? " + b1);
       System.out.println("is " + s2 + " a palindrome? " + b2);
       System.out.println("is " + s3 + " a palindrome? " + b3);
       System.out.println("is " + s4 + " a palindrome? " + b4);


   }
}
рдирддреАрдЬрд╛ рд╡рд╣реА рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдерд╛
рд╕реНрддрд░ рдПрдХ рд╡рд┐рд▓реЛрдордкрдж рд╣реИ? рдЯреНрд░реВ рдЗрдЬ рдХреВрд▓ рдП рдкреИрд▓рд┐рдВрдбреНрд░реЛрдо? рдЭреВрдард╛ рдореИрдбрдо рд╡рд┐рд▓реЛрдордкрдж рд╣реИ? рдЭреВрдард╛ рд╣реИ рдЕрдм, рд╢реНрд░реАрдорд╛рди, рдПрдХ рдпреБрджреНрдз рдЬреАрдд рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ! рдПрдХ рд╡рд┐рд▓реЛрдордкрдж? рдЕрд╕рддреНрдп
рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдерд╛ред рдЖрдкрдиреЗ рдЬреЛ рд╕реАрдЦрд╛ рд╣реИ рдЙрд╕реЗ рд╕реБрджреГрдврд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдЬрд╛рд╡рд╛ рдХреЛрд░реНрд╕ рд╕реЗ рдПрдХ рд╡реАрдбрд┐рдпреЛ рд╕рдмрдХ рджреЗрдЦреЗрдВ
рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ
  • рд▓реЛрдХрдкреНрд░рд┐рдп
  • рдирдпрд╛
  • рдкреБрд░рд╛рдирд╛
рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рд╛рдЗрди рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдЗрд╕ рдкреЗрдЬ рдкрд░ рдЕрднреА рддрдХ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВ