代码拉取完成,页面将自动刷新
分析: 此题比较简单,需要考虑以下几点:
提供两种方法:第一种将数字转成字符串,从中间向两侧拓展比较。 实现代码为:
//11%
public boolean isPalindrome(int x) {
if(x<0)return false;
String va=x+"";
int left=0,right=0;
if(va.length()%2==0)
{
left=va.length()/2-1;right=left+1;
}
else {
left=va.length()/2;right=left;
}
while (left>=0) {
if(va.charAt(left)!=va.charAt(right))
return false;
left--;right++;
}
return true;
}
但很遗憾这种方法效率比较低只能打败11%的人呢,大概18ms左右。
但是可以换一种思路,使用字符串比较效率较低。可以使用数字类型计算一遍得到逆向数值然后进行比较最终值是否相同:
public boolean isPalindrome(int x) {
if(x<0)return false;
int team=x;
int va=0;
while (x>0) {
va=va*10+x%10;
x/=10;
}
if(va==team)return true;
return false;
}
这样就大概9-10ms左右,9ms大概打败98%而10ms只40%多。
原创不易,最后我请你帮两件事帮忙一下:
star、follow支持一下, 您的肯定是我在平台创作的源源动力。
微信搜索「bigsai」,关注我的公众号,不仅免费送你电子书,我还会第一时间在公众号分享知识技术。加我还可拉你进力扣打卡群一起打卡LeetCode。
记得关注、咱们下次再见!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。