这个 Java 回文解决方案有效吗?它不使用字符串或字符方法
Is this Java palindrome solution efficient? It doesn't use string or char methods
这是我看到的解决方案:
package com.philippemoisan;
public class Main {
public static void main(String[] args) {
System.out.println(isPalindrome(-212));
}
public static boolean isPalindrome(int number) {
int reverse = 0;
int initNumber = number;
while (number != 0) {
int lastDigit = number % 10;
reverse = reverse * 10;
reverse +=lastDigit;
number/=10;
}
if (initNumber == reverse) {
return true;
}
return false;
}
}
我知道有回文解 here 但我的 Java 课程还没有那么远。
所以,我只想知道我在这里发布的解决方案是否有效,或者使用我提供的线程 link 中的解决方案会更好。
链接答案上的解决方案效率更高,因为如果单词不是回文,则不会遍历整个number/word。
您提供的解决方案循环遍历整个 number/word,即使第一步可以检测到第一个和最后一个 digit/char 不相同。
你提供的link是字符串回文,你贴的程序是数字回文。回文概念是相同的,这就是相似性结束的地方。
字符串回文的时间和space复杂度与整数回文完全不同。
希望 helps.best 祝你在 Java 旅途愉快
这是我看到的解决方案:
package com.philippemoisan;
public class Main {
public static void main(String[] args) {
System.out.println(isPalindrome(-212));
}
public static boolean isPalindrome(int number) {
int reverse = 0;
int initNumber = number;
while (number != 0) {
int lastDigit = number % 10;
reverse = reverse * 10;
reverse +=lastDigit;
number/=10;
}
if (initNumber == reverse) {
return true;
}
return false;
}
}
我知道有回文解 here 但我的 Java 课程还没有那么远。 所以,我只想知道我在这里发布的解决方案是否有效,或者使用我提供的线程 link 中的解决方案会更好。
链接答案上的解决方案效率更高,因为如果单词不是回文,则不会遍历整个number/word。
您提供的解决方案循环遍历整个 number/word,即使第一步可以检测到第一个和最后一个 digit/char 不相同。
你提供的link是字符串回文,你贴的程序是数字回文。回文概念是相同的,这就是相似性结束的地方。
字符串回文的时间和space复杂度与整数回文完全不同。
希望 helps.best 祝你在 Java 旅途愉快