CSDN话题挑战赛第1期
活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f
参赛话题:自动驾驶技术学习记录
话题描述:自动驾驶是当前最火热的技术之一,吸引了无数的开发者与学习者融入其中。然而,自动驾驶技术是系统硬件平台与人工智能、物联网、大数据、云计算等新一代信息技术深度融合的产物,具有知识新、内容杂、难度深、缺少系统教程等特点,让许多开发者眼花缭乱。
本话题通过记录分享自动驾驶相关技术,为大家提供相互学习与交流的平台。话题分享与讨论的技术点包括不限于:自动驾驶算法、自动驾驶系统基础架构、智能驾驶交互技术、虚拟仿真、自动化测试、无人系统与车辆平台、自动驾驶计算平台与传感器等。
剑指 Offer 61. 扑克牌中的顺子
从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
解题思路
根据数组中的五张牌进行讨论:
1、五张无重复的牌,若牌面的最大值减非0的最小值小于5,则返回真,否则返回假;
2、若存在重复牌,且数组中无0,返回假;
3、若数组中存在0,同时存在其他数值的重复牌,返回假,反之(也就是重复牌中只存在0),且最大值减非0的最小值小于5,则为真。
python3代码
class Solution:
def isStraight(self, nums: List[int]) -> bool:
#通过集合判断牌面数值有无重复
nums_set=set(nums)
set_list=list(nums_set)
# 找出非0的最小值
maxv=max(nums)
minv=14
for i in nums:
if i<minv and i!=0:
minv=i
# 牌面无重复
if len(set_list)==5:
if maxv-minv<5:
return True
else:
return False
else: #牌面存在重复牌
if 0 in set_list: #0存在于数组中
dic={}
for i in nums:
if i not in dic.keys():
dic[i]=1
else:
if i !=0: #重复牌不为0
return False
dic[i]=dic[i]+1
if maxv-minv<5:
return True
else:
return False
else: #重复牌为其他数值牌
return False
剑指 Offer 58 - I. 翻转单词顺序
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. “,则输出"student. a am I”。
解题思路
1、去掉字符串中头尾的空格;
2、根据空格进行分割,这里需要注意s.split(’ ‘)和s.split()在多个连续空格下的区别: s.split(’ ')遇到多个连续空格会依次进行划分,产生空字符串;s.split()将多个连续空格当成一个空格进行划分,不会有空字符串的产生。
python3代码
class Solution:
def reverseWords(self, s: str) -> str:
# 去掉头尾空格
s=s.strip()
# 按空格进行划分
word_temp = s.split()
#逆序重组字符串
i=len(word_temp)-1
s_new=''
while i>=0:
if i>0:
s_new = s_new+word_temp[i]+' '
else:
s_new = s_new+word_temp[i]
i=i-1
return s_new
CSDN话题挑战赛第1期
活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f