将字符串转化为数字,实现int()方法
s = '298476'
n = 298476
s = s[::-1]
number = 0
for i, e in enumerate(s):
print(i, e)
for j in range(0, 10):
if e == str(j):
number += j*(10**i)
print(number)
回文数
def isPalindrome(x):
if x < 0:#当数字是负数的时候必然不是回文数
return False
result = 0
temp = x
while temp != 0:
result = result * 10 + temp % 10
temp = temp // 10
print(result, temp)
return x == result
res = isPalindrome(1221)
print(res)
俩数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素
arr=[1,3,6,15]
target=9
# 一遍哈希表
def two_sum_with_dict2(nums, target):
_dict = {}
for i, e in enumerate(nums):
if _dict.get(target - e) is not None:
return (_dict.get(target - e), i)
_dict[e] = i
res=two_sum_with_dict2(arr,target)
print(res)
# 暴力循环
def twoSum(nums,target):
for i, m in enumerate(nums):
j=i+1
while j<len(nums):
if target == m+nums[j]:
return [i,j]
else:
j+=1
res = twoSum(arr,target)
print(res)
反转字符串
eStr=["h","e","l","l","o"]
outputStr=["o","l","l","e","h"]
eStr.reverse()
# 双向指针
i, j = 0, len(eStr)-1
while i<j:
eStr[i], eStr[j]=eStr[j],eStr[i]
i+=1
j-=1
反转字符串里的单词
rStr = "the sky is blue"
# 方法一
newrStr = rStr.split()
i, j = 0, len(newrStr)-1
while i < j:
newrStr[i], newrStr[j] = newrStr[j], newrStr[i]
i+=1
j-=1
print(' '.join(newrStr))
# 方法二
print(' '.join(rStr.split()[::-1]))
冒泡排序
def bubbo_sort(arr):
length = len(arr)
for i in range(length):
for j in range(length-i-1):
if arr[j] > arr[j+1]:
# tmp = arr[j]
# arr[j]=arr[j+1]
# arr[j+1]=tmp
arr[j], arr[j+1] = arr[j+1], arr[j]
arr=[1,3,4,5,6,8,2,7]
bubbo_sort(arr)
print(arr)
网友评论