length = len(start)
i = 0
def judge(x1,x2,i):
if start == x1 and end == x2:
j = i
while end != x1:
j += 1
if j == length:
return False
if start == x2*(j - i-1):
i = j+1
return i
return 0
while i < length:
if start == end:
i+=1
continue
if i < len(start)-1 and start == end and start == end:
i+=2
continue
res = judge('R','X',i) + judge('X','L',i)
if res:
i = res
continue
return False
return True 塔利班 发表于 2020-4-5 19:09
多点测试用例就好了
解答错误
输入:start = "XXXXXLXXXX", end = "LXXXXXXXXX"
输出:False
预期结果:True TJBEST 发表于 2020-4-5 19:58
来一个无脑的算法,后面有更好的在更改。
输入以下数据超时:
start = "XXXXXXRXXLXXRXXXRXXX", end = "RXXLXXXRXXXXXXRXXXXX" 本帖最后由 zltzlt 于 2020-4-8 18:44 编辑
March2615 发表于 2020-4-5 21:35
后面判断位置写的太复杂了,不知道有没有更好的方法
48 ms kinkon 发表于 2020-4-5 21:37
56 ms ouyunfu 发表于 2020-4-5 22:38
解答错误
输入:start = "XXXXXLXXXLXXXX"
end = "XXLXXXXXXXXLXX"
输出:True
预期结果:False whosyourdaddy 发表于 2020-4-5 22:51
def func369(start,end):
i = 0
j = 0
52 ms ouyunfu 发表于 2020-4-5 23:25
解答错误
输入:start = "XXXXXLXXXLXXXX"
end = "XXLXXXXXXXXLXX"
输出:True
预期结果:False 风魔孤行者 发表于 2020-4-6 10:00
解答错误
输入:start = "XXXXXLXXXLXXXX"
end = "XXLXXXXXXXXLXX"
输出:True
预期结果:False 旅途Z 发表于 2020-4-6 11:51
思路:先检查长度及去X后LR的顺序与数量是否一致,
再根据LR在start与end字符串中的索引判断是否可以 ...
解答错误
输入:start = "XXXLXXLXXLXXRXXXRXLXRXRXXXXXLX"
end = "LLLXXXXXXXXXXXXXRRLXXXXXXXRRLX"
输出:False
预期结果:True chen971130 发表于 2020-4-6 12:14
解答错误
输入:start = "XXXXXLXXXX"
end = "LXXXXXXXXX"
输出:False
预期结果:True Joy187 发表于 2020-4-6 12:50
def converse(start,end):
for i in range(0,len(start)):
if(start=='X'):
输入 start = "X", end = "L" 出错 阴阳神万物主 发表于 2020-4-6 13:59
难度评级:简单
要素分析:字符串 模拟
代码:
60 ms NAMELESSONE 发表于 2020-4-7 19:26
解答错误
输入:start = "RL"
end = "LR"
输出:True
预期结果:False zltzlt 发表于 2020-4-8 18:38
解答错误
输入:
感谢楼主!错误已修正,给楼主赞一个👍 本帖最后由 fan1993423 于 2020-4-11 11:09 编辑
March2615 发表于 2020-4-5 21:35
后面判断位置写的太复杂了,不知道有没有更好的方法
这样也许快点,版主可以在测一下,速度可能有所提升, @zltzlt
def daily369(start: str, end: str) -> bool:
start_copy,end_copy=start[:],end[:]
if len(start) != len(end):return False
if start.replace('X', '') != end.replace('X', ''):return False
while True:
start_l,end_l=start.find('L'),end.find('L')
if start_l!=-1:
if start_l<end_l:return False
if start_l==len(start)-1 or end_l==len(end)-1:break
start,end=start,end
if start.find('L')==-1:break
else:break
while True:
start_r,end_r=start_copy.find('R'),end_copy.find('R')
if start_r!=-1:
if start_r>end_r:return False
if start_r==len(start_copy)-1 or end_r==len(end_copy)-1:break
start_copy,end_copy=start_copy,end_copy
if start_copy.find('R')==-1:break
else:break
return True fan1993423 发表于 2020-4-11 11:08
这样也许快点,版主可以在测一下,速度可能有所提升, @zltzlt
结果有错 不对啊,我是沿着他的思路写的
页:
1
[2]