当前位置:
首页 > Python基础教程 >
-
python基础教程之力扣题目汇总(机器人返回原点
机器人能否返回原点
1.题目描述
在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。
移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R
(右),L
(左),U
(上)和 D
(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。
注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。
示例 1:
输入: "UD"
输出: true
解释:机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终回到它开始的原点。因此,我们返回 true。
示例 2:
输入: "LL"
输出: false
解释:机器人向左移动两次。它最终位于原点的左侧,距原点有两次 “移动” 的距离。我们返回 false,因为它在移动结束时没有返回原点。
2.解题思路
#思路一
把水平和垂直分开用两个值代表,LR代表水平加减,UD代表垂直方向加减
#思路二(再思路一上进行改进)
LR字符串存在的个数相同和UD字符串存在的个数相同 及返回原点
3.解题
#思路一解答
class Solution:
def judgeCircle(self, moves: str) -> bool:
level = 0
level_list = ['R','L']
vertical = 0
vertical_list = ['U','D']
for a in moves:
if a =='R':
level += 1
elif a=='L':
level -=1
elif a =='U':
vertical += 1
elif a == 'D':
vertical -= 1
if level == 0 and vertical ==0:
return True
else:
return False
#思路二解答
class Solution(object):
def judgeCircle(self, moves):
"""
:type moves: str
:rtype: bool
"""
if moves.count('D') == moves.count('U') and moves.count('L') == moves.count('R'):
return True
else:
return False
按奇偶排序数组
1.题目描述
给定一个非负整数数组 A
,返回一个数组,在该数组中, A
的所有偶数元素之后跟着所有奇数元素。
你可以返回满足此条件的任何数组作为答案。
示例:
输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。
提示:
-
1 <= A.length <= 5000
-
0 <= A[i] <= 5000
2.解题思路
利用偶数特效%2余0然后进行对调位置
3.解题
class Solution:
def sortArrayByParity(self, A: List[int]) -> List[int]:
i = 0
for j in range(len(A)):
if A[j] % 2 == 0:
A[i], A[j] = A[j], A[i]
i += 1
return A
数字的补数
1.题目描述
给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。
注意:
- 给定的整数保证在32位带符号整数的范围内。
- 你可以假定二进制数不包含前导零位。
示例 1:
输入: 5
输出: 2
解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。
示例 2:
输入: 1
输出: 0
解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。
2.解题思路
按照题目描述走,先变成二进制,然后去除前倒数,再01兑换,再二进制变成整型
3.解题
class Solution:
def findComplement(self, num: int) -> int:
num = bin(num)
num = num[2:]
new_num = ''
for a in num:
if a == '0':
new_num += '1'
else:
new_num += '0'
return int(new_num,2)
`有更加好的思路,或者解题方法评论区留言谢谢
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式