赞
踩
描述
编写一个函数,接受一个字符串作为参数,将字符串中的每个单词进行反转,并返回反转后的字符串。
假设字符串中的单词由空格分隔。
输入
输入一个字符串
输出
输出反转后的字符串
输入样例 1
Hello World输出样例 1
olleH dlroW
仅需对每一个单词进行逆序输出即可。只是【把单词根据空格分开】和【逆序输出】两个小知识点需要学习一下。
分割split(),括号中可填入分割的标识,如这里cur.split()则表示按空字符分割,cur.split(",")则表示按逗号分割。当然原来的是字符串,分割后仍然要存在一个字符串中。如果参数有数字,则表示分割的次数。
逆序输出s[::-1],这只是一个顺序完全相反的新列表或字符串,原列表或字符串的内容并没有改变,要存的话要新建一个变量来存。
- def roll_back(cur):
- words = cur.split() # split input on whitespace
- for word in words:
- print(word[::-1],end=' ') # reverse the word and print it
-
- cur = input()
- roll_back(cur)
描述
编写一个函数,接受一个列表作为参数,返回列表中所有重复的元素。
输入
输入一行列表里的元素,元素之间是空格隔开的
输出
列表中所有重复的元素
输入样例 1
1 2 3 2 4 5 3输出样例 1
2 3提示
注意元素有可能不止是number
首先注意到元素可能是任何数据类型,因为python的输入都是按照字符串进行处理,我们姑且按照字符串作为元素进行编写。同样也是先spilt()这行字符串,把元素存在一个列表中,然后用一个字典记录每一个单词出现的次数,然后还需要把重复的元素记录下来。也就是说,我们需要两个列表和一个字典。最后用join把新列表输出即可。
- array = input().split()
- counts = {}
- duplicates = []
- for elements in array:
- counts[elements] = counts.get(elements, 0)+1
- if counts[elements] > 1 and elements not in duplicates:
- duplicates.append(elements)
- print(" ".join(duplicates))
描述
编写一个函数,接受两个正整数 m 和 n 作为参数,计算从网格的左上角到右下角的所有唯一路径数。
比如:
m = 3, n = 2
输出示例:3
(可以通过向右、向右、向下的顺序到达右下角)输入
输入两个正整数m和n
输出
输出由m行n列组成网格的左上角到右下角的唯一路径数
输入样例 1
3 2输出样例 1
3
其实也可以类似于递归那样子的算法,因为唯一路径从(0,0)到(m,n)的话一定是向右走m步、向下走n步。从最后一步开始推的话,以向下、向右为正方向,一定是【从(m-1,n)向下走了一步】或者是【从(m,n-1)向右走了一步】,因此到(m,n)的路径数是到(m-1,n)和(m,n-1)的路径数之和。而一直推到最初,从(0,0)到(0,0)只有一种路径,因此可以使用这样的递归算法。
- def uniquePaths(m, n):
- dp = [[0] * n for _ in range(m)]
- for i in range(m):
- for j in range(n):
- if i == 0 and j == 0:
- dp[i][j] = 1 #原点到原点只有一种路径
- elif i == 0:
- dp[i][j] = dp[i][j - 1]
- elif j == 0:
- dp[i][j] = dp[i - 1][j] #如果仍有一个坐标为零,那一定是沿着坐标线走的
- else:
- dp[i][j] = dp[i - 1][j] + dp[i][j - 1] #从左边和从上边来两种情况
- return dp[m - 1][n - 1]
-
- m, n = map(int, input().split())
- print(uniquePaths(m, n))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。