之前一直在leetcode上刷题,借12-12优惠活动,入坑了大雪菜的算法基础课,提高班和leetcode究极班。
上了第一节课,要码代码的时候发现,和leetcode提交答案的模式不一样,这里要自己定义主函数之类的。作为转码选手,对这些概念其实一直都不清楚,搜了搜别人的题解才知道python的应该怎么处理input(),定义主函数。也希望如果有同样python选手,可以传授下经验。
https://www.geeksforgeeks.org/taking-multiple-inputs-from-user-in-python/
归根到底两个方法:
Using split() method
Using List comprehension
1:Using split() method
这里感觉python take 进来的input全部当作字符串来处理,所以要把他们先转换成整形,然后转换成list。
模板如下:
nums = list(map(int, input().split()))
2: Using List comprehension
nums = [int(x) for x in input().split()]
写了快排代码之后,发现还是提交有compile问题。想请教Ac里的同学老师帮忙看一看, 源代码如下,报错的是 n = int(input())这一行 EOFERROR。但是这些input定义是参照讨论里的python题解来的,不知道问题出在哪里。提前感谢大家!
import random
def quicksort(nums, start, end):
if start>=end:
return
key = random.randrange(start, end)
nums[key], nums[start] = nums[start], nums[key]
l = start+1
r = end
while l<=r:
while l<=r and nums[l]<=nums[start]:
l += 1
while l<=r and nums[r]>=nums[start]:
r -= 1
if l<r:
nums[l], nums[r] = nums[r], nums[l]
nums[start], nums[r] = nums[r], nums[start]
quicksort(nums, start, r-1)
quicksort(nums, r+1, end)
#return nums
if name == “main”:
n = int(input())
nums = list(map(int, input().split()))
quicksort(nums, 0, n-1)
print (nums)
很有用,收藏了