這里我嘗試的示例輸入是“aabaa”
,例如:如果條件 val[0] = a[4]
如果它相等,我將它存盤在計數器變數中,如果它是原始字串長度的一半,它是回文
如果它是不是它不是回文
我嘗試了我在java中的基本知識,如果有任何錯誤讓我知道
boolean solution(String inputString) {
int val = inputString.length();
int count = 0;
for (int i = 0; i<inputString.length(); i ) {
if(inputString.charAt(i) == inputString.charAt(val-i)) {
count = count ;
if (count>0) {
return true;
}
}
}
return true;
}
uj5u.com熱心網友回復:
在您的版本中,您將第一個元素與最后一個元素進行比較,第二個與倒數第二個等進行比較。在這種情況下,最后一個元素是 inputString.length()-1(因此需要使用 'inputString.charAt(val-i-1)' 。如果您迭代直到結束,然后計數應該等于字串的長度。
for(int i = 0; i<inputString.length(); i ){
if(inputString.charAt(i) == inputString.charAt(val-i-1)){
count ;
}
}
return (count==val); //true when count=val
或者交替迭代直到陣列的中點,然后計數值為 val/2。
for(int i = 0; i<inputString.length()/2; i ){
if(inputString.charAt(i) == inputString.charAt(val-i-1)){
count ;
}
}
return (count==val/2); //true when count=val/2
uj5u.com熱心網友回復:
怎么樣
public boolean isPalindrome(String text) {
String clean = text.replaceAll("\\s ", "").toLowerCase();
int length = clean.length();
int forward = 0;
int backward = length - 1;
while (backward > forward) {
char forwardChar = clean.charAt(forward );
char backwardChar = clean.charAt(backward--);
if (forwardChar != backwardChar)
return false;
}
return true;
}
從這里
uj5u.com熱心網友回復:
這個問題沒有限制,所以讓我提出一個更俗氣的解決方案。
boolean isPalindrome(String in)
final String inl = in.toLowerCase();
return new StringBuilder(inl).reverse().toString().equals(inl);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/419856.html
標籤:
上一篇:將輸入整數本身相加,整數倍
下一篇:如何從匹配條件的字串中挑選單詞
