算法面试——ACM输入输出总结(Python) 【代码】算法面试——ACM输入输出总结(Python)

单行输入

1. 单个输入

# 输入为: 1 
a = int(input()) # 单个转换
# a = 1

2. 列表数组输入,转为数字列表

# 输入为: 1 2 3 4 5
a = input()
# a = '1 2 3 4 5'
b = [int(i) for i in input().split()] # 当然可以一步倒位
# 使用列表进行批量转换 b = [1, 2, 3, 4, 5]
# 使用map进行并行转换
e = map(int, input().split()) # 此时e是一个map迭代器,不能赋值,也不能索引
f = list(e) # 转换为列表,e = [1, 2, 3, 4, 5]
g = list(map(int, input().split())) # 一步到位

多行输入

1. 多行输入,同时未指定用例的个数

"""
输入包括两个正整数a,b(1 

2. 多行输入, 指定用例个数

"""
输入第一行包括一个数据组数t(1 

3. 多行输入,指定某个条件退出

"""
输入包括两个正整数a,b(1 

链表输入输出

# 定义链表结构
class ListNode:
 def __init__(self,val,next=None):
 self.val = val
 self.next = next
# 数组转链表
def nums2ListNode(nums):
 dummy = ListNode(None)
 root = ListNode(nums[0])
 dummy.next = root
 i = 1
 while i < len(nums):
 node = ListNode(nums[i])
 root.next = node
 root = root.next
 i += 1
	root.next = None
 return dummy.next
# 打印链表
nums = [1,2,3,4,5]
root = nums2ListNode(nums)
while root:
 print(root.val)
 root = root.next

二叉树的输入输出

4.1 完全二叉树格式输入

# 中序遍历
def inorder_traversal(nums, index):
 if index >= len(nums) or nums[index] == -1:
 return
 left, right = 2 * index + 1, 2 * index + 2
 inorder_traversal(nums, left)
 print(nums[index], end = ' ')
 inorder_traversal(nums, right)
# 输入为 1 2 3 null 4 null 5
# 1
# / \
# 2 3
# \ \
# 4 5
if __name__ == "__main__":
 nums = input().split()
 nums = [int(num) if num != 'null' else -1 for num in nums]
 inorder_traversal(nums, 0)
 # output: 2 4 1 3 5
作者:胜利冲锋号原文地址:https://blog.csdn.net/weixin_52148768/article/details/133961458

%s 个评论

要回复文章请先登录注册