句子回文(删除空格、点等后的回文)

写一个程序来检查一个句子是否是回文。你可以忽略空白和其他字符,把句子看作回文。 例如:

null
Input : str = "Too hot to hoot."Output : Sentence is palindrome.Input : str = "Abc def ghi jklm."Output : Sentence is not palindrome.

请注意,两个单词之间可能有多个空格和/或点。

找出一个句子是否正确 回文的 ,从左到右比较每个字符。如果它们相等,则进行比较,直到字符串的左边和右边相等,或者右边小于左边。记住忽略字符串中的空格和其他字符。

C++

// CPP program to find if a sentence is
// palindrome
#include <bits/stdc++.h>
using namespace std;
// To check sentence is palindrome or not
bool sentencePalindrome(string str)
{
int l = 0, h = str.length() - 1;
// Lowercase string
for ( int i = 0; i <= h; i++)
str[i] = tolower (str[i]);
// Compares character until they are equal
while (l <= h) {
// If there is another symbol in left
// of sentence
if (!(str[l] >= 'a' && str[l] <= 'z' ))
l++;
// If there is another symbol in right
// of sentence
else if (!(str[h] >= 'a' && str[h] <= 'z' ))
h--;
// If characters are equal
else if (str[l] == str[h])
l++, h--;
// If characters are not equal then
// sentence is not palindrome
else
return false ;
}
// Returns true if sentence is palindrome
return true ;
}
// Driver program to test sentencePalindrome()
int main()
{
string str = "Too hot to hoot." ;
if (sentencePalindrome(str))
cout << "Sentence is palindrome." ;
else
cout << "Sentence is not palindrome." ;
return 0;
}


JAVA

// Java program to find if a sentence is
// palindrome
public class GFG
{
// To check sentence is palindrome or not
static boolean sentencePalindrome(String str)
{
int l = 0 ;
int h = str.length()- 1 ;
// Lowercase string
str = str.toLowerCase();
// Compares character until they are equal
while (l <= h)
{
char getAtl = str.charAt(l);
char getAth = str.charAt(h);
// If there is another symbol in left
// of sentence
if (!(getAtl >= 'a' && getAtl <= 'z' ))
l++;
// If there is another symbol in right
// of sentence
else if (!(getAth >= 'a' && getAth <= 'z' ))
h--;
// If characters are equal
else if ( getAtl == getAth)
{
l++;
h--;
}
// If characters are not equal then
// sentence is not palindrome
else
return false ;
}
// Returns true if sentence is palindrome
return true ;
}
// Driver program to test sentencePallindrome()
public static void main(String[] args)
{
String str = "Too hot to hoot." ;
if ( sentencePalindrome(str))
System.out.println( "Sentence is palindrome" );
else
System.out.println( "Sentence is not" + " " +
"palindrome" );
}
}
//This code is contributed by Sumit Ghosh


Python3

# Python program to find if a sentence is
# palindrome
# To check sentence is palindrome or not
def sentencePalindrome(s):
l, h = 0 , len (s) - 1
# Lowercase string
s = s.lower()
# Compares character until they are equal
while (l < = h):
# If there is another symbol in left
# of sentence
if ( not (s[l] > = 'a' and s[l] < = 'z' )):
l + = 1
# If there is another symbol in right
# of sentence
elif ( not (s[h] > = 'a' and s[h] < = 'z' )):
h - = 1
# If characters are equal
elif (s[l] = = s[h]):
l + = 1
h - = 1
# If characters are not equal then
# sentence is not palindrome
else :
return False
# Returns true if sentence is palindrome
return True
# Driver program to test sentencePalindrome()
s = "Too hot to hoot."
if (sentencePalindrome(s)):
print ( "Sentence is palindrome." )
else :
print ( "Sentence is not palindrome." )
# This code is contributed by Sachin Bisht


C#

// C# program to find if a
// sentence is palindrome
using System;
public class GFG
{
// To check sentence is
// palindrome or not
static bool sentencePalindrome(String str)
{
int l = 0;
int h = str.Length - 1;
// Lowercase string
str = str.ToLower();
// Compares character until
// they are equal
while (l <= h)
{
char getAtl = str[l];
char getAth = str[h];
// If there is another symbol
// in left of sentence
if (!(getAtl >= 'a' &&
getAtl <= 'z' ))
l++;
// If there is another symbol
// in right of sentence
else if (! (getAth >= 'a' &&
getAth <= 'z' ))
h--;
// If characters are equal
else if ( getAtl == getAth)
{
l++;
h--;
}
// If characters are not equal then
// sentence is not palindrome
else
return false ;
}
// Returns true if sentence
// is palindrome
return true ;
}
// Driver Code
public static void Main()
{
String str = "Too hot to hoot." ;
if ( sentencePalindrome(str))
Console.Write( "Sentence is palindrome" );
else
Console.Write( "Sentence is not" + " " +
"palindrome" );
}
}
// This code is contributed by Nitin Mittal.


PHP

<?php
// PHP program to find if a sentence is
// palindrome
// To check sentence is palindrome or not
function sentencePalindrome( $str )
{
$l = 0;
$h = strlen ( $str )-1;
// Lowercase string
for ( $i = 0; $i < $h ; $i ++)
$str [ $i ] = strtolower ( $str [ $i ]);
// Compares character until they are equal
while ( $l <= $h ) {
// If there is another symbol in left
// of sentence
if (!( $str [ $l ] >= 'a' && $str [ $l ] <= 'z' ))
$l ++;
// If there is another symbol in right
// of sentence
else if (!( $str [ $h ] >= 'a' && $str [ $h ] <= 'z' ))
$h --;
// If characters are equal
else if ( $str [ $l ] == $str [ $h ])
{
$l ++;
$h --;
}
// If characters are not equal then
// sentence is not palindrome
else
return false;
}
// Returns true if sentence is palindrome
return true;
}
// Driver program to test sentencePalindrome()
$str = "Too hot to hoot." ;
if (sentencePalindrome( $str ))
echo "Sentence is palindrome." ;
else
echo "Sentence is not palindrome." ;
return 0;
?>


Javascript

<script>
// Javascript program to find if a sentence is
// palindrome
// To check sentence is palindrome or not
function sentencePalindrome(str)
{
let l = 0;
let h = str.length-1;
// Lowercase string
str = str.toLowerCase();
// Compares character until they are equal
while (l <= h)
{
let getAtl = str[l];
let getAth = str[h];
// If there is another symbol in left
// of sentence
if (!(getAtl >= 'a' && getAtl <= 'z' ))
l++;
// If there is another symbol in right
// of sentence
else if (!(getAth >= 'a' && getAth <= 'z' ))
h--;
// If characters are equal
else if ( getAtl == getAth)
{
l++;
h--;
}
// If characters are not equal then
// sentence is not palindrome
else
return false ;
}
// Returns true if sentence is palindrome
return true ;
}
// Driver program to test sentencePallindrome()
let str = "Too hot to hoot." ;
if ( sentencePalindrome(str))
document.write( "Sentence is palindrome" );
else
document.write( "Sentence is not" + " " +
"palindrome" );
//This code is contributed by avanitrachhadiya2155
</script>


输出:

Sentence is palindrome.

时间复杂性: O(N)其中N是句子的长度 空间复杂性: O(1)

本文由 努克洛德 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享