数据结构与算法类
大约 2 分钟
数据结构与算法类
反转一个整数,例如-123 --> -321
def reverse(x):
if x < 0:
return -int(str(-x)[::-1])
else:
return int(str(x)[::-1])判断一个整数是否是回文数,例如121,-121,10
def isPalindrome(x):
if x < 0 or (x % 10 == 0 and x != 0):
return False
revertedNumber = 0
while x > revertedNumber:
revertedNumber = revertedNumber * 10 + x % 10
x //= 10
return x == revertedNumber or x == revertedNumber // 10给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数
def rotate(nums, k):
k %= len(nums)
nums[:] = nums[-k:] + nums[:-k]给定一个数组,将数组中的元素向左移动 k 个位置,其中 k 是非负数
def rotate(nums, k):
k %= len(nums)
nums[:] = nums[k:] + nums[:k]字符串'123'转换成123,不使用内置方法 本题和下面几道题目来源于128道Python面试题(带答案).pdf
def str2int(s):
res = 0
for i in s:
res = res * 10 + ord(i) - ord('0')
return res代码解释:
ord()函数返回字符的ASCII码
ord('0') 返回字符 '0' 的 Unicode 码点(即 48)。通过 ord(i) - ord('0'),可以将字符 i 转换为对应的整数值。例如,字符 '1' 转换为整数 1,字符 '2' 转换为整数 2,依此类推。
统计一个文本中单词频次最高的10个单词?
from collections import Counter
def top_10_words(text):
words = text.split()
word_counts = Counter(words)
return word_counts.most_common(10)给定一个字符串,找出其中不含有重复字符的最长子串的长度
def length_of_longest_substring(s):
n = len(s)
if n == 0:
return 0
max_len = 0
start = 0
used_chars = {}
for i in range(n):
if s[i] in used_chars and start <= used_chars[s[i]]:
start = used_chars[s[i]] + 1
else:
max_len = max(max_len, i - start + 1)
used_chars[s[i]] = i
return max_len给定一个任意长度数组,实现一个函数
让所有奇数都在偶数前面,而且奇数升序排列,偶数降序排序,如字符串'1982376455',变成'1355798642'
写一个函数找出一个整数数组中,第二大的数
统计一段字符串中字符出现的次数
写一个函数找出一个整数数组中,第二大的数
数组中出现次数超过一半的数字
求100以内的质数
无重复字符的最长子串
冒泡排序
快速排序
斐波那契数列
如何翻转一个单链表?
青蛙跳台阶问题
写一个二分查找
Python实现一个Stack的数据结构
Python实现一个Queue的数据结构
如何判断单向链表中是否有环?
两数之和 Two Sum
列表中有n个正整数范围在[0,1000],进行排序
