算法(递归函数检查字符串是否是回文)

本文概述

  • 建议:在继续解决方案之前, 请先在{IDE}上尝试使用你的方法。
  • C ++
  • C
  • Java
  • python
  • C#
  • 的PHP
【算法(递归函数检查字符串是否是回文)】给定一个字符串, 编写一个递归函数, 检查给定的字符串是否为回文, 否则为回文。
例子 :
Input : malayalamOutput : YesReverse of malayalam is alsomalayalam.Input : maxOutput : NoReverse of max is not max.

推荐:请尝试使用{IDE}首先, 在继续解决方案之前。我们已经讨论了迭代函数这里.
递归函数的思想很简单:
1) If there is only one character in stringreturn true.2) Else compare first and last charactersand recur for remaining substring.

下面是上述想法的实现:
C ++
// A recursive C++ program to // check whether a given number // is palindrome or not #include < bits/stdc++.h> using namespace std; // A recursive function that // check a str展开 is // palindrome or not. bool isPalRec( char str[], int s, int e) {// If there is only one character if (s == e) return true ; // If first and last // characters do not match if (str展开 != str[e]) return false ; // If there are more than // two characters, check if // middle substring is also // palindrome or not. if (s < e + 1) return isPalRec(str, s + 1, e - 1); return true ; }bool isPalindrome( char str[]) { int n = strlen (str); // An empty string is // considered as palindrome if (n == 0) return true ; return isPalRec(str, 0, n - 1); }// Driver Code int main() { char str[] = "geeg" ; if (isPalindrome(str)) cout < < "Yes" ; else cout < < "No" ; return 0; }// This code is contributed by shivanisinghss2110

C
// A recursive C program to // check whether a given number // is palindrome or not #include < stdio.h> #include < string.h> #include < stdbool.h> // A recursive function that // check a str展开 is // palindrome or not. bool isPalRec( char str[], int s, int e) { // If there is only one character if (s == e) return true ; // If first and last // characters do not match if (str展开 != str[e]) return false ; // If there are more than // two characters, check if // middle substring is also // palindrome or not. if (s < e + 1) return isPalRec(str, s + 1, e - 1); return true ; }bool isPalindrome( char str[]) { int n = strlen (str); // An empty string is // considered as palindrome if (n == 0) return true ; return isPalRec(str, 0, n - 1); }// Driver Code int main() { char str[] = "geeg" ; if (isPalindrome(str)) printf ( "Yes" ); else printf ( "No" ); return 0; }

Java
// A recursive JAVA program to // check whether a given String // is palindrome or not import java.io.*; class GFG { // A recursive function that // check a str(s..e) is // palindrome or not. static boolean isPalRec(String str, int s, int e) { // If there is only one character if (s == e) return true ; // If first and last // characters do not match if ((str.charAt(s)) != (str.charAt(e))) return false ; // If there are more than // two characters, check if // middle substring is also // palindrome or not. if (s < e + 1 ) return isPalRec(str, s + 1 , e - 1 ); return true ; }static boolean isPalindrome(String str) { int n = str.length(); // An empty string is // considered as palindrome if (n == 0 ) return true ; return isPalRec(str, 0 , n - 1 ); }// Driver Code public static void main(String args[]) { String str = "geeg" ; if (isPalindrome(str)) System.out.println( "Yes" ); else System.out.println( "No" ); } }// This code is contributed // by Nikita Tiwari

python
# A recursive Python program # to check whether a given # number is palindrome or not# A recursive function that # check a str展开 is # palindrome or not. def isPalRec(st, s, e) :# If there is only one character if (s = = e): return True# If first and last # characters do not match if (st展开 ! = st[e]) : return False# If there are more than # two characters, check if # middle substring is also # palindrome or not. if (s < e + 1 ) : return isPalRec(st, s + 1 , e - 1 ); return Truedef isPalindrome(st) : n = len (st)# An empty string is # considered as palindrome if (n = = 0 ) : return Truereturn isPalRec(st, 0 , n - 1 ); # Driver Code st = "geeg" if (isPalindrome(st)) : print "Yes" else : print "No"# This code is contributed # by Nikita Tiwari.

C#
// A recursive C# program to // check whether a given number // is palindrome or not using System; class GFG {// A recursive function that // check a str(s..e) // is palindrome or not. static bool isPalRec(String str, int s, int e) {// If there is only one character if (s == e) return true ; // If first and last character // do not match if ((str展开) != (str[e])) return false ; // If there are more than two // characters, check if middle // substring is also // palindrome or not. if (s < e + 1) return isPalRec(str, s + 1, e - 1); return true ; }static bool isPalindrome(String str) { int n = str.Length; // An empty string is considered // as palindrome if (n == 0) return true ; return isPalRec(str, 0, n - 1); }// Driver Code public static void Main() { String str = "geeg" ; if (isPalindrome(str)) Console.Write( "Yes" ); else Console.Write( "No" ); } }// This code is contributed by Nitin Mittal.

的PHP
< ?php // A recursive php program to // check whether a given number // is palindrome or not// A recursive function that // check a str展开 is // palindrome or not. function isPalRec( $str , $s , $e ) { // If there is only one character if ( $s == $e ) return true; // If first and last // characters do not match if ( $str [ $s ] != $str [ $e ]) return false; // If there are more than two // characters, check if middle // substring is also palindrome or not. if ( $s < $e + 1) return isPalRec( $str , $s + 1, $e - 1); return true; }function isPalindrome( $str ) { $n = strlen ( $str ); // An empty string is // considered as palindrome if ( $n == 0) return true; return isPalRec( $str , 0, $n - 1); }// Driver Code { $str = "geeg" ; if (isPalindrome( $str )) echo ( "Yes" ); else echo ( "No" ); return 0; }// This code is contributed // by nitin mittal. ?>

输出:
Yes

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

    推荐阅读