Python每日一题(6)

Python每日一题 2025.3.26

一、前期回顾

今天做了个题目,用的python的idle写的,用起来不是很舒服感觉。题目提交pta的话,总会出问题,显示的大意应该是非0返回值好像,感觉比较奇怪。我后面自定义了一个main()函数并return0之后,还是不行。另外python的输入输出对比c++来看,有一定区别的。c++做题,不论是一边循环一边输入,只需要将待输入值全部放进去就行,而python如果循环输入,只能一个一个回车敲,如果全部输入进去就会报错,不知道问题出现在哪里。另外还有输出问题,循环输出的话,每一个print()就会添加个回车,提交之后都不知道是否可行。python可能更倾向于将所有输入存储到列表里,然后对列表进行操作,分开来弄,输出也是,将所有输出存储到列表中,然后再对输出操作。而对于循环输入输出,可能会存在问题。

二、题目

回忆一下题目,是栈类型题目,一开始输入整数n,接下来输入n个整数,其中非零整数代表入栈,0代表出栈,如果出栈栈为空的话,则输出"EMPTY",最后输出完数据后,第二行再输出栈内剩余元素。注意输出格式。

三、自己源代码

自己用idle做的时候,用循环输入输出做的,感觉非常丑陋,一点没有pythonic的感觉。想通过' '.join(map(str,l))来控制输出格式,不知道哪里存在问题,报错了,我自己觉得应该没问题。感觉对idle使用不是很熟练,没有自动补全、显示等功能,还需要将对应函数名、类名记全。

python 复制代码
import sys
import pdb
n=int(input())
line=sys.stdin.readline()
l=list(map(int,line.strip().split()))
# pdb.set_trace()
#此时l存储了所有的输入输出
#接下来需要将对应数据分开存储。
#没有储存输入输出的实例,我这里就给出来吧
#输入:
# 12
# 1 2 3 0 0 -1 0 0 0 4 5 0
#输出
#3 2 -1 1 "EMPTY" 5
#4
#接下来遍历列表,然后再pop,
stack=[]
result1=[]
result2=[]
for i in l:
    if i:
        stack.append(i)
    elif not i and stack:
        result1.append(stack.pop())
    elif not i and not stack:
        result1.append("EMPTY")

if stack:
    result2.extend(stack)
print(' '.join(map(str,result1)))
print(' '.join(map(str,result2)))

输入输出:

从输入输出角度来看,最好还是用双列表来存储,之后再去整理,因为不知道用循环输入输出,在oj、pta等编译器中编译的情况是什么,如果可以正常运行的话,可以使用循环输入输出。我这里.join()写的没问题啊,为什么在idle中弄的时候会报错呢?

四、deepseek答案

python 复制代码
n = int(input())
ops = list(map(int, input().split()))
stack = []
output = []

for num in ops:
    if num != 0:
        stack.append(num)
    else:
        if not stack:
            output.append('"EMPTY"')
        else:
            output.append(str(stack.pop()))

# 输出第一行
print(' '.join(output))
# 输出第二行
print(' '.join(map(str, stack)) if stack else '')

输出结果

五、源代码与ai分析

逻辑上一样,但是相比我的则更加简洁,感觉不用多说什么。我一开始自己写的是循环输入输出,很C化的写法,但是在idle中,只能一个一个输出,输出也是一个跳着一个出,在C中没问题,但是在pta中我不确定,因为也是第一次传入题目。不过整体的输入输出还是建议按照上面的。

相关推荐
子夜江寒26 分钟前
基于 OpenCV 的图像形态学与边缘检测
python·opencv·计算机视觉
海边的Kurisu1 小时前
苍穹外卖日记 | Day1 苍穹外卖概述、开发环境搭建、接口文档
java
C雨后彩虹5 小时前
任务最优调度
java·数据结构·算法·华为·面试
heartbeat..5 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
Jing_jing_X5 小时前
AI分析不同阶层思维 二:Spring 的事务在什么情况下会失效?
java·spring·架构·提升·薪资
SmartRadio7 小时前
CH585M+MK8000、DW1000 (UWB)+W25Q16的低功耗室内定位设计
c语言·开发语言·uwb
rfidunion7 小时前
QT5.7.0编译移植
开发语言·qt
少林码僧7 小时前
2.31 机器学习神器项目实战:如何在真实项目中应用XGBoost等算法
人工智能·python·算法·机器学习·ai·数据挖掘
rit84324997 小时前
MATLAB对组合巴克码抗干扰仿真的实现方案
开发语言·matlab
元Y亨H7 小时前
Nacos - 服务发现
java·微服务