7.整数反转
JAVA题解
public int reverse(int x) {
long sum=0;
while(x!=0){
sum = sum*10 + x % 10;
x /= 10;
}
return (int)sum==sum ? (int)sum:0;
}
CPP题解
int reverse(int x) {
long sum=0;
while(x!=0){
sum=sum*10+x%10;
x/=10;
}
return (int)sum==sum?sum:0;
}
JavaScript题解
var reverse = function(x) {
let sum=0;
let below = false;
if (x < 0){
below = true;
x = -x;
}
while(x!=0){
sum = sum*10 + x%10;
x = Math.floor(x/10);
if( sum > Math.pow(2, 31)-1 || sum < -Math.pow(2, 31) )
return 0;
}
if( sum <= Math.pow(2, 31)-1 && sum >= -Math.pow(2, 31) ){
if(below)
return -sum;
else
return sum;
}
return 0;
};
14.最长公共前缀
Python 题解
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
min=len(strs[0])
for i in range(0,len(strs)):
if min > len(strs[i]):
min = len(strs[i])
ch = ""
cnt = 0
for j in range(0, min):
for k in range(0, len(strs)):
if strs[0][j] == strs[k][j]:
cnt += 1
if cnt == len(strs):
ch += strs[0][j]
else:
break
cnt = 0
return ch
20.有效的括号
CPP题解
bool isValid(string s) {
if( s.length() % 2 != 0)
return false;
unordered_map<char, char> pairs={
{'(' , ')'},{'[',']'},{'{','}'}
};
stack<char> stk;
for (int i=0;i<s.length();i++){
if(pairs.find(s[i]) != pairs.end())
stk.push(pairs[s[i]]);
else
{
if(stk.empty() || stk.top() != s[i])
return false;
stk.pop();
}
}
return stk.empty();
}
Python 题解
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
if len(s)%2==1:
return False
while '()' in s or '[]' in s or '{}' in s:
s = s.replace('()','')
s = s.replace('[]','')
s = s.replace('{}','')
return s == ''
26. 删除有序数组中的重复项
Python题解
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) < 2:
return len(nums)
idx = 0
for i in range(1, len(nums)):
if nums[idx] != nums[i]:
idx += 1
nums[idx] = nums[i]
return idx + 1
CPP题解
int removeDuplicates(vector<int>& nums) {
if (nums.size()<2)
return nums.size();
int i, idx = 0;
for (i = 1;i < nums.size();i++){
if(nums[i] != nums[idx])
nums[++idx]=nums[i];
}
return idx+1;
}
C题解
int removeDuplicates(int* nums, int numsSize){
if(strlen(nums)<2)
return strlen(nums);
int idx = 0,i;
for(i=1;i<strlen(nums);i++){
if(nums[i]!=nums[idx]){
nums[++idx]==nums[i];
}
}
return idx+1;
}
33. 搜索旋转排序数组
CPP题解
int search(vector<int>& nums, int target) {
int l=0,r=nums.size()-1;
if ( r == 0 && nums[0]!= target)
return -1;
for (int i=0;i<nums.size();i++)
if (target == nums[i])
return i;
return -1;
}
JAVA题解
public int search(int[] nums, int target) {
int l=0,r=nums.length-1;
if ( r == 0 && nums[0]!= target)
return -1;
for (int i=0;i<nums.length;i++)
if (target == nums[i])
return i;
return -1;
}