牛客网 刷题前的准备工作

  • 牛客网 刷题前的准备工作
    • 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 模板样例的总结如下(自己简写了代码):

  1. 输入数据一行,输出数据也是一行:

模板如下:

# -*- 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
  1. 输入数据多行,行数已知(第一个数表示后面要接受的数据的行数):

# -*- 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 = " ")   # 一行输出所有,空格隔开
  1. 输入数据多行,行数不确定(不停地接受数据):
# -*- 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
  1. 首行两个数字:
# -*- 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. 牛客对输入的处理汇总如下(上面的内容如果不想看,只需要会用下面就行):

  1. 牛客官方给出的对 输入的处理例子: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 转成一个字符串。排序 中间 加 空格。末尾无空格

牛客网 刷题前的准备工作(输入 输出 如何接收?)相关推荐

  1. 牛客网刷题记录 || 结构体和类

    这是牛客网刷题记录专栏第五篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统.题库.课程教育.社群交流.招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人 ...

  2. 牛客网刷题之SQL篇:非技术快速入门39T

    导航 前序 一.简单的关键字练习 1-10 二.知识点复习之 ==运算符== 1.算数运算符 2.比较运算符 3.逻辑运算符 4.位运算符 三.10-28T 0.简单题总结 1. SQL18 ==分组 ...

  3. 2023年大年初一 —— 牛客网刷题经验分享~

    2023年大年初一 -- 牛客网刷题经验分享~

  4. 牛客网刷题记录 || 循环

    这是牛客网刷题记录专栏第七篇博文,先给大家简单介绍一下牛客网,牛客网是一个集笔面试系统.题库.课程教育.社群交流.招聘内推于一体的优质网站,牛客网题库中包含几万道题目,注重通过边学边练的模式揽获编程人 ...

  5. 【牛客网刷题】中秋节前开启java专项练习错题总结第一天

    [牛客网刷题]中秋节前开启java专项练习错题总结第一天 概述 写在前面 错题分析 值得记录的错题 总结 写在最后 概述 还有十几天就到中秋节了,从此又老了一岁,也多了一年的知识积累.对于这样一个特殊 ...

  6. verilog牛客网刷题代码汇总

    verilog牛客网刷题代码汇总 作者:安静到无声 个人主页 作者简介:人工智能和硬件设计博士生.CSDN与阿里云开发者博客专家,多项比赛获奖者,发表SCI论文多篇. Thanks♪(・ω・)ノ 如果 ...

  7. 牛客网刷题 --- 输入输出数据处理

    正确处理输入输出格式 常见的输入格式: 预先不输入数据的组数 - 直接读到文件结尾 预先输入数据的组数 - 读数据组数然后循环 只有一组数据 - 直接读数据 处理输出格式要注意细节,看题目的具体要求 ...

  8. 牛客网刷题-java

    大部分解答为牛客网各位同学的精彩回答,本文只是选择一些互联网常考题目记录备忘. 1.一个类的构造器可以调用这个类中的其他构造器: this的作用其中一个就是在一个构造方法中调用另一个构造方法,格式为t ...

  9. 牛客网刷题——二叉树

    作者:敲代码の流川枫 博客主页:流川枫的博客 专栏:和我一起学java 语录:Stay hungry stay foolish 工欲善其事必先利其器,给大家介绍一款超牛的斩获大厂offer利器--牛客 ...

最新文章

  1. 机器人导航两篇顶级会议论文解析
  2. android修改系统设置权限_如何给PDF设置权限,使PDF不能被修改?
  3. 使用ADO.NET操作数据库
  4. python文件夹目录_Python 操作文件、文件夹、目录大全
  5. python笔记之Cmd模块
  6. 任正非:华为要防止内卷 精益求精不叫内卷
  7. Mybatis源码解析:sql参数处理(1)
  8. 使用cronolog-1.6.2按日期截取Tomcat日志
  9. fianl属性 java_Java反射如何有效的修改final属性值详解
  10. 人人都是产品经理指南:技术转产品经理,从入门到放弃
  11. photoshop自定义画笔预设,工作中的应用。
  12. Hunger Snake3
  13. CoreText(五):省略号
  14. 在虚拟机linux系统中安装与配置jdk
  15. 在Android上修改读取IMEI码的方法
  16. tensorflow中的一些基本函数
  17. python新版个人所得税_Python 小案例 计算个人所得税
  18. 昨天辞职,年前的年终奖等福利1W多公司不给我了,我该怎么办
  19. iOS 6与iOS 7的增量更新的区别
  20. 虹科案例 | 空调故障无冷气,且没有故障码

热门文章

  1. 蚁创互联|微商起盘全案模式策划
  2. Proteus8.9提示未注册
  3. 【案例27】get table metadata error
  4. 电脑杀蚊器:超级蚊霸+电子蚊香
  5. “游戏发布 20 年之后,开发者喜提百万富翁!”
  6. Pytorch损失函数torch.nn.NLLLoss()详解
  7. Android 平台开发一个输入法
  8. 传诺基亚携手中国移动推TD-SCDMA版Lumia920 -铁石社区-TA云测试平台
  9. 【夏天再见】2017暑期回顾---“软件自由日”
  10. hellojs实现google+facebook登陆