场景练习

2020年3月26日
331、键盘行
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。
示例:
输入: ["Hello", "Alaska", "Dad", "Peace"]
输出: ["Alaska", "Dad"]
 
注意:
1.你可以重复使用键盘上同一字符。
你可以假设输入的字符串将只包含字母。

def findWords(words):
    key1="qwertyuiop"
    key2="asdfghjkl"
    key3="zxcvbnm"
    result=[]
    for i in words:
        temp=1
        if i.lower()[0] in key1:
            templist=key1
        elif i.lower()[0] in key2:
            templist=key2
        else:
            templist=key3
        for j in range(1,len(i)):
            if i.lower()[j] not in templist:
                temp=0
                break
        if temp:
            result.append(i)
    return result

print(findWords(["Hello","Alaska","Dad","Peace"]))

e:\pythonExcise>python 0326test.py
['Dad']


324、汉明距离
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x 和 y,计算它们之间的汉明距离。
注意:
0 ≤ x, y < 231.
示例:
输入: x = 1, y = 4

输出: 2

解释:
1   (0 0 0 1)
4   (0 1 0 0)
       ↑   ↑

上面的箭头指出了对应二进制位不同的位置

x=int(input("请输入整数x:"))
y=int(input("请输入整数y:"))

result=0
str_x=bin(x)[2:]
str_y=bin(y)[2:]

if x<=y:
    while len(str_x)<4*len(str(y)):
        str_x="0"+str_x
    print(str_x)
    
    while len(str_y)<4*len(str(y)):
        str_y="0"+str_y
    print(str_y)
    for i in range(4*len(str(y))):
        if str_x[i]==str_y[i]:
            continue
        else:
            result+=1
    print(result)
else:
    while len(str_x)<4*len(str(y)):
        str_x="0"+str_x
    print(str_x)

    while len(str_y)<4*len(str(y)):
        str_y="0"+str_y
    print(str_y)
    for i in range(4*len(str(x))):
        if str_x[i]==str_y[i]:
            continue
        else:
            result+=1
    print(result)


325、机器人能否返回原点
在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。
移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。
注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。
 
示例 1:
输入: "UD"
输出: true
解释:机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终回到它开始的原点。因此,我们返回 true。
示例 2:
输入: "LL"
输出: false
解释:机器人向左移动两次。它最终位于原点的左侧,距原点有两次 “移动” 的距离。我们返回 false,因为它在移动结束时没有返回原点。
-------------------------------------------------------
move
def judgeCircle(moves):
    point=0
    for i in moves:
        if i=="R":
            point+=1
        elif i=="L":
            point-=1
        elif i=="U":
            point+=2
        elif i=="D":
            point-=2
    if point==0:
        return True
    else:
        return False

print(judgeCircle("RLR"))
print(judgeCircle("LRUD"))


# e:\pythonExcise>python 0326test.py
# False
# True

 

posted @ 2020-03-27 00:41  进阶的淑琴  阅读(150)  评论(0)    收藏  举报