近几周一直在刷oj,没有及时周更,后面要陆续贴出oj入门过程中学到的一些知识和技巧。
A
这次列出来的题目是Palindrome Number,一个很老的题目。下面贴出来的代码是用C++实现的,算法思想一目了然,主要是逐个数位处理,用while循环实现。
class Solution {
public:
bool isPalindrome(int x) {
if(x < 0) return false;
int revhalf = 0, slow = x, fast = x;
while(fast){
revhalf = revhalf * 10 + slow % 10;
slow /= 10;
fast /= 100;
}
return slow == revhalf || slow == revhalf / 10;
}
};
我还学习到一种用Python3写的“黑科技”:
return False if x < 0 else x == int(str(x)[::-1])
这里的核心就是"[::-1]"
R
T
S
相关链接:
1.python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2.有关[::-1]时间复杂度的问题