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