算法面试——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
算法面试——ACM输入输出总结(Python) 【代码】算法面试——ACM输入输出总结(Python)算法面试——ACM输入输出总结(Python) 【代码】算法面试——ACM输入输出总结(Python)算法面试——ACM输入输出总结(Python) 【代码】算法面试——ACM输入输出总结(Python)算法面试——ACM输入输出总结(Python) 【代码】算法面试——ACM输入输出总结(Python)算法面试——ACM输入输出总结(Python) 【代码】算法面试——ACM输入输出总结(Python)算法面试——ACM输入输出总结(Python) 【代码】算法面试——ACM输入输出总结(Python)算法面试——ACM输入输出总结(Python) 【代码】算法面试——ACM输入输出总结(Python)算法面试——ACM输入输出总结(Python) 【代码】算法面试——ACM输入输出总结(Python)算法面试——ACM输入输出总结(Python) 【代码】算法面试——ACM输入输出总结(Python)