如何忽略字符串回文中的标点符号,大写字母和空格? [英] How can I ignore punctuations, capitalizations and whitespaces from string palindrome?
本文介绍了如何忽略字符串回文中的标点符号,大写字母和空格?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想使用Stack忽略来自字符串回文的标点符号,大小写和空格,以便:
例如:
输入:女士,我是Adam
输出:是Palindrom
这里忽略空格,标点符号和大写字母。
我尝试过:
I want to ignore punctuations, capitalizations and whitespaces from string palindrome using Stack so that:
For example:
Input: Madam, I’m Adam
Output: Yes Palindrom
Here whitespaces, punctuations and capitalizations are ignored.
What I have tried:
class Stack {
char[] arr;
int index;
int size;
Stack(int size)
{
this.size=size;
index=0;
arr=new char[size];
}
public boolean isFull()
{
return (index==size);
}
public boolean isEmpty()
{
return (index==0);
}
public void push(char e)
{
if(isFull())
System.out.print("Stack is Full");
arr[index]=e;
index++;
}
public char pop()
{
if(isEmpty())
System.out.print("Stack is Empty");
return arr[--index];
}
public static void main(String[] args) {
String inputString = "Madam, I’m Adam";
Stack stack=new Stack(inputString.length());
for (int i = 0; i < inputString.length(); i++)
{
stack.push(inputString.charAt(i));
}
String reverseString = "";
while (!stack.isEmpty())
{
reverseString = reverseString+stack.pop();
}
if (inputString.equals(reverseString))
System.out.println("Yes Palindrome");
else
System.out.println("Not Palindrome");
}
}
推荐答案
我会删除所有非字母字符,转换所有字母降低(或更高)的情况,并最终检查simmetry。例如
I would remove all non-letter characters, transform all letters to lower (or upper) case and eventually check for simmetry. E.g.
class PalChecker
{
public static boolean isPalindrome(String instr)
{
StringBuilder sb = new StringBuilder();
for (char c : instr.toCharArray())
if ( Character.isLetter(c) )
sb.append(Character.toLowerCase(c));
String str = sb.toString();
int len = str.length();
for (int i=0; i < len/2; i++)
if (str.charAt(i) != str.charAt(len - 1 - i) )
return false;
return true;
}
public static void main(String args[])
{
String inputString = "Madam, I’m Adam";
boolean isPal = isPalindrome(inputString);
System.out.printf("The input string is" + (isPal ? "": " not") + " palindrome.\n");
}
}
这篇关于如何忽略字符串回文中的标点符号,大写字母和空格?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文