赞
踩
偶然间看到这个话题,觉得和自己最近的刷题经历很像,所以也想把经历做个记录和分享。我是一枚测试,都是自学的编程语言,编程能力一般,刷题过程从最开始题都看不懂,到写读取输入数据代码都费劲,到能做一些简单的题,到连续两次考试0分,再到更换编程语言重新刷题,再到如今考试360分。说实话还蛮佩服自己的,也希望同在刷题的你坚持不懈!
1.我最开始使用的是Java语言,刷题是在力扣上。但是一开始进展并不顺利,个人感觉:力扣网上的题目描述比较简单,有时难以理解题意;代码编写是以既定的形式,通常是在某个方法中实现,不够灵活;另外代码格式调整方式不够智能;道友的解题方式要么是大神,要么很多相同的。
2.经过两次考试失败后,我又全新学习了Python语言,并且主要在牛客网上刷题。个人比较喜欢牛客网的刷题:题目描述相对清楚一点而且代码的自测调试也更加灵活;而且华为机考以牛客网方式进行。
就刷题而言,不管是Java还是Python,个人认为掌握入门到实践就可以进行刷题了。比如Java,掌握语法规则、数据类型及表达式,结构化的程序设计以及类与对象。至于一些特别的类,比如List、Map、Collection、StringBuilder等等,都可以在刷题中一边学一边应用,更容易上手。
刷题时,遇到反复理解都理解不了一点的题,就直接看道友解析吧,你会发现不只你一人是这样的,这种没必要纠结,耗费太多心神。比如,
这虽然是简单,但我看了好一会儿,完全不知道啥意思…所以不必理会
另外,对于初入门的刷题道友,建议先多看:多看看其他道友的解题思路,然后自己理解,然后再根据自己理解,尽量不看解析的前提自行编程
想来我也差点因为这个原因而从入门到放弃,因此掌握读取输入参数的方法尤为重要。
比如java语言:
import java.util.Scanner; // Java中通过向实现Scanner类来获得读取输入值或判断是否有输入值的方法 // 常用的有hasNextLine()、nextLine()、hasNext()、next() // 同时,还应该掌握快速转换输入数据类型的方法:比如字符串转整型、字符串 //转数组等 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextLine()) { // 注意 while 处理多个 case String str = in.nextLine(); int leng = str.length(); int zero = 8 - (leng % 8); if(zero > 0 && zero < 8){ for(int i = 0; i < zero; i++){ str = str +"0"; } } for(int i = 0; i < str.length() /8; i++){ int index = i * 8; System.out.println(str.substring(index,index+8)); } } } }
又如Python语言:
# 方式1.input(),这种方式读取的数据类型是字符串,而且是一次读取一整行 # 以回车键结束 n = int(input()) # 将字符串转化为整型 lst = list(map(int, input().split())) # 现将输入按空格拆分,然后用map()函数将拆分后的数据转化为整型,最后转化为列表 suma = 0 sumb = 0 for i in lst: suma = suma ^ i if suma != 0: print('-1') else: sumb = sum(lst) - min(lst) print(sumb) # 方式2 sys.stdin # 一次读取一整行,然后对数据解析 import sys for line in sys.stdin: a = line.split() print(int(a[0]) + int(a[1]))
我总结的常见的题目类型及知识点有:字符串处理,递归,BFS/DFS,贪心,滑窗,堆栈,动态规划。刷题的时候可以按照知识点分类,针对每一类,对其常见题型理解透彻,掌握并牢记其编程思想。附上我最近的刷题记录,刚刷完,还没有作注释,先不放代码。
我最开始一道题要花两三个小时,有时候需要一天的时间。但我觉得先别急,别急着快。最重要的是花了时间,就应该把解题思路弄得明明白白的,一遍不懂就两遍。
总结一下我的刷题流程:1.先看道友、牛人及官方的解题思路,然后写下自己的理解思路,接着根据思路编程调试;2.连续几天后就先自己理解题意并梳理解题思路,然后再编程,调试后再看道友的解题思路以拓宽思维;3.然后就是不同题型,难易程度从简单到困难依次进行;4.最后就是重复重复再重复。
最后,刷题的过程可能是困难、痛苦的,但结果一定是激动、灿烂的。相信会当凌绝顶,一览众山小!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。