牛客网 刷题前的准备工作(输入 输出 如何接收?)
牛客网 刷题前的准备工作
- 牛客网 刷题前的准备工作
- 1. 数据读取接受问题
- 2.牛客刷题前的准备:
- 2.1. 弄清楚输入输出的行数关系
- 3.代码怎么写
- 3.1. 在牛客上测试自己的模板代码,是否能正确接受数据和输出数据。
- 3.2. 在本地debug也是需要模板的。
- 4. 最终使用的模版如下:
- 5. 牛客对输入的处理汇总如下(上面的内容如果不想看,只需要会用下面就行):
- 5.1. 读取 一些数字的 方法
- 5.2. 读取 一些字符串的 方法
- 完
牛客网 刷题前的准备工作
1. 数据读取接受问题
- leetcode是直接调用我们写一个函数来测试算法,不存在数据的读取问题。牛客是写一个完整的程序,需要读取题目给出的数据。
- 牛客的数据处理方式:需要接受数据,返回数据。
接受数据的方式两种:line_in_data = sys.stdin.readline().strip()
,有时可以用line_indata = input()
替代(注意:input()内不能加字符串)。
输出数据的方式:print(out_data)
,(注意:不是return
)
牛客官网推荐的接受数据的代码 python,其他语言见链接:https://www.nowcoder.com/discuss/276:
官网 python2 的模板如下:
# 作者:管理员
# 链接:https://www.nowcoder.com/discuss/276
# 来源:牛客网import sys
try:while True:line = sys.stdin.readline().strip()if line == '':breaklines = line.split()print int(lines[0]) + int(lines[1])
except:pass
为了方便在本地调试,我将代码改成如下,我看了牛客替他人提交的答案,也是将while
写在了try
里面(官网模板相反)(自己使用的模板):
# -*- coding: utf-8 -*-
import sys
try:while True:line = sys.stdin.readline().strip()if line == '':break# lines = line.split()# print(int(lines[0]) + int(lines[1]))
except:pass
2.牛客刷题前的准备:
2.1. 弄清楚输入输出的行数关系
根据链接牛客网 多行输入输出问题 Python3 模板样例的总结如下(自己简写了代码):
- 输入数据一行,输出数据也是一行:
模板如下:
# -*- coding: utf-8 -*-
i = input()print(i)
样题链接:https://www.nowcoder.com/question/next?pid=710802&qid=26011&tid=31559276
我的测试通过的代码如下:
# -*- coding: utf-8 -*-
import systry:while True:line = sys.stdin.readline().strip()# lines = sys.stdin.readlines().strip()if line == '':breakres = ""for i in line:if i not in res:res += iprint(res)# lines = line.split()# print(int(lines[0]) + int(lines[1]))
except:pass
- 输入数据多行,行数已知(第一个数表示后面要接受的数据的行数):
# -*- coding: utf-8 -*-
n = input() # 接受n
info_data = []
for _ in range(n):info_data.append(input()) # 接受n下面的n行数据print(info_data)
for i in range(len(info_data))):print(info_data[i]) # 一行输出一个print(info_data[i], end = " ") # 一行输出所有,空格隔开
- 输入数据多行,行数不确定(不停地接受数据):
# -*- coding: utf-8 -*-
import sys
try:while True:line = sys.stdin.readline().strip()if line == '':break# lines = line.split()# print(int(lines[0]) + int(lines[1]))
except:pass
- 首行两个数字:
# -*- coding: utf-8 -*-
info_2 = list(map(int, input().split(" ")))
a = []
b = []for _ in range(info[0]):a.ppend(input().split(" "))
for _ in range(info[1]):b.ppend(input().split(" "))
3.代码怎么写
3.1. 在牛客上测试自己的模板代码,是否能正确接受数据和输出数据。
这里要准备(背下来)好直接能用的模板:
3.2. 在本地debug也是需要模板的。
这里也要记住在本地使用的模板,本地的模板和最终提交牛客的模板是有区别的。
4. 最终使用的模版如下:
# -*- coding: utf-8 -*-import sys# 题目是:https://www.nowcoder.com/profile/515223636/codeBookDetail?submissionId=69667629
# 测试样例是 I am a boy
# 提交给牛客时 删除下面的行就行, 自己写的。
# 请勿在该程序中修改代码,请复制到其他文件中去写。
file = open('input.in')
sys.stdin = filewhile True:# try:line = sys.stdin.readline().strip()if line == '':breakres = ""for d in line.split(" ")[::-1]:res += d + " "print(res.rstrip())
5. 牛客对输入的处理汇总如下(上面的内容如果不想看,只需要会用下面就行):
- 牛客官方给出的对 输入的处理例子:https://ac.nowcoder.com/acm/contest/5647?from=hr_test#question
5.1. 读取 一些数字的 方法
import sys# 题目是:https://www.nowcoder.com/profile/515223636/codeBookDetail?submissionId=69667629
# 测试样例是 I am a boy
# 提交给牛客时 删除下面的行就行, 自己写的。
# 请勿在该程序中修改代码,请复制到其他文件中去写。file = open('input.in')
sys.stdin = file# 将读取的字符串 转成 int
n = int(sys.stdin.readline().strip()) # 第一行
while True: # 后面每一行的# 将一行的数据 按空格分开读取成 int list。 list 的长度 就是 数据的个数。nums = [int(i) for i in sys.stdin.readline().strip().split()]if not nums: break # 如果空行,nums 为 []# ############# 上面的等效于 #################line = sys.stdin.readline().strip() # 读取后面的每一行if line == '': breaknums = [int(i) for i in line.split()] # 将改行处理成 int 存放在 list 中
5.2. 读取 一些字符串的 方法
import sysfile = open('input.in')
sys.stdin = filen = int(sys.stdin.readline().strip()) # 第一行
while True: # 后面每一行。 可以根据第一行读取的数据控制,后续需要读取的行数。while n > 0: n -= 1 # strs = sys.stdin.readline().strip().split() # 读取一行字符 以空格间隔开字符串 并存放在list 中strs = sys.stdin.readline().strip().split(',') # 读取一行字符 以','间隔开字符串 并存放在list 中if not strs: break # 空行结束循环strs = ' '.join(sorted(strs)) # list 转成一个字符串。排序 中间 加 空格。末尾无空格
完
牛客网 刷题前的准备工作(输入 输出 如何接收?)相关推荐
- 牛客网刷题记录 || 结构体和类
这是牛客网刷题记录专栏第五篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统.题库.课程教育.社群交流.招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人 ...
- 牛客网刷题之SQL篇:非技术快速入门39T
导航 前序 一.简单的关键字练习 1-10 二.知识点复习之 ==运算符== 1.算数运算符 2.比较运算符 3.逻辑运算符 4.位运算符 三.10-28T 0.简单题总结 1. SQL18 ==分组 ...
- 2023年大年初一 —— 牛客网刷题经验分享~
2023年大年初一 -- 牛客网刷题经验分享~
- 牛客网刷题记录 || 循环
这是牛客网刷题记录专栏第七篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统.题库.课程教育.社群交流.招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人 ...
- 【牛客网刷题】中秋节前开启java专项练习错题总结第一天
[牛客网刷题]中秋节前开启java专项练习错题总结第一天 概述 写在前面 错题分析 值得记录的错题 总结 写在最后 概述 还有十几天就到中秋节了,从此又老了一岁,也多了一年的知识积累.对于这样一个特殊 ...
- verilog牛客网刷题代码汇总
verilog牛客网刷题代码汇总 作者:安静到无声 个人主页 作者简介:人工智能和硬件设计博士生.CSDN与阿里云开发者博客专家,多项比赛获奖者,发表SCI论文多篇. Thanks♪(・ω・)ノ 如果 ...
- 牛客网刷题 --- 输入输出数据处理
正确处理输入输出格式 常见的输入格式: 预先不输入数据的组数 - 直接读到文件结尾 预先输入数据的组数 - 读数据组数然后循环 只有一组数据 - 直接读数据 处理输出格式要注意细节,看题目的具体要求 ...
- 牛客网刷题-java
大部分解答为牛客网各位同学的精彩回答,本文只是选择一些互联网常考题目记录备忘. 1.一个类的构造器可以调用这个类中的其他构造器: this的作用其中一个就是在一个构造方法中调用另一个构造方法,格式为t ...
- 牛客网刷题——二叉树
作者:敲代码の流川枫 博客主页:流川枫的博客 专栏:和我一起学java 语录:Stay hungry stay foolish 工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器--牛客 ...
最新文章
- 机器人导航两篇顶级会议论文解析
- android修改系统设置权限_如何给PDF设置权限,使PDF不能被修改?
- 使用ADO.NET操作数据库
- python文件夹目录_Python 操作文件、文件夹、目录大全
- python笔记之Cmd模块
- 任正非:华为要防止内卷 精益求精不叫内卷
- Mybatis源码解析:sql参数处理(1)
- 使用cronolog-1.6.2按日期截取Tomcat日志
- fianl属性 java_Java反射如何有效的修改final属性值详解
- 人人都是产品经理指南:技术转产品经理,从入门到放弃
- photoshop自定义画笔预设,工作中的应用。
- Hunger Snake3
- CoreText(五):省略号
- 在虚拟机linux系统中安装与配置jdk
- 在Android上修改读取IMEI码的方法
- tensorflow中的一些基本函数
- python新版个人所得税_Python 小案例 计算个人所得税
- 昨天辞职,年前的年终奖等福利1W多公司不给我了,我该怎么办
- iOS 6与iOS 7的增量更新的区别
- 虹科案例 | 空调故障无冷气,且没有故障码
热门文章
- 蚁创互联|微商起盘全案模式策划
- Proteus8.9提示未注册
- 【案例27】get table metadata error
- 电脑杀蚊器:超级蚊霸+电子蚊香
- “游戏发布 20 年之后,开发者喜提百万富翁!”
- Pytorch损失函数torch.nn.NLLLoss()详解
- Android 平台开发一个输入法
- 传诺基亚携手中国移动推TD-SCDMA版Lumia920 -铁石社区-TA云测试平台
- 【夏天再见】2017暑期回顾---“软件自由日”
- hellojs实现google+facebook登陆