本文概述
- 建议:在继续解决方案之前, 请先在{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
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
推荐阅读
- PHP中的关联数组详细介绍
- Python MySQL 删除表用法指南
- 8086微处理器中的寻址模式详细指南
- 金融市场中的云计算服务简介
- 三星班加罗尔(SRIB)实习面试经验(校园内)
- 操作系统中目录的结构详细介绍
- SASS嵌套用法示例
- JavaScript面向对象的程序设计及原型链的理解运用全解【重点】
- JavaScript中的window对象属性方法全集