题解 | #牛的回文编号II#
牛的回文编号II
https://www.nowcoder.com/practice/0b576fd673834425878b99c736bb6c34
知识点:双指针,字符串
首先要将整数部分和小数部分分割开来,分别进行判断,对于小数部分,我们还要删除末尾的零,处理完成后,要对两个字符串进行回文串判断,具体来说,使用双指针指向字符串两侧,若指向字符相同,则向内靠拢,直至重叠,说明是回文字符串,否则不是。
Java题解如下
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param x string字符串
* @return bool布尔型
*/
public boolean isPalindromeNumber (String x) {
// write code here
String digit1 = x.substring(0, x.indexOf("."));
String digit2 = x.substring(x.indexOf(".") + 1, x.length());
int index = digit2.length() - 1;
while(digit2.charAt(index) == '0') {
index--;
}
digit2 = digit2.substring(0, index + 1);
if(!checkStr(digit1) || !checkStr(digit2)) {
return false;
}
return true;
}
private boolean checkZero(String s) {
for(int i = 0; i < s.length(); i++) {
if(s.charAt(i) != '0') {
return false;
}
}
return true;
}
private boolean checkStr(String s) {
int n = s.length();
for(int i = 0; i < n / 2; i++) {
if(s.charAt(i) != s.charAt(n - 1 - i)) {
return false;
}
}
return true;
}
}
查看6道真题和解析