本帖最后由 378657357 于 2016-9-28 10:59 编辑
一些基础编程难题例如:1:金额转换,阿拉伯数字转换成中国传统形式。例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整(千亿以上只要你会读我就会写..)
2:编写程序 键入一个整数 在1-9随机添加加减符号,统计出该整数所有的情况 * 1 2 3 4 5 6 7 8 9 中间只能连接"+","-",或不用符号 * 例如:键入 100 * 打印台打印出:* 100 =123 - 45 - 67 + 89 * 100 =123 - 4 - 5 + 67 + 89 * 100 =123 + 45 - 67 + 8 - 9 等等组合可能
3:输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来。
等等之类的题目,往往给人第一感觉就一头雾水,完全没有思路和方向,但是其实这些难题也是游一些基础的知识点演化引申而来的,没有谁一开始就会做难题,只是他可能某些点的基础比你扎实,而难题的难,往往就在于某些个关键点的基础强化操作,可能你思路、解题方法都和别人一模一样,就是那一步不会将思想语言转变成编程语言.
下面就上干货和个人收集的一些难题题库和解决思路方法、代码,因为之前单题单帖被版主认为灌水,无奈汇集于一帖,整理原创好的合适的资源真不容易,(如果大家觉得资源和文章还凑合,对自己有帮助,跪求大家打赏一点黑马币接济下个人).
个人认为,对于这些基础编程题,你自己至少要有一个数据类型自己掌握的比较熟悉,在这里向大家推荐String字符串类,原因如下:
1.它具有非常强大的字符串配套处理功能、方法(比如截取、切割、索引、等等,不要以为自己都会,我做这些编程难题,绝大多数都是用字符串来解决的,等你看了我的代码,肯定会有一种感觉,"奥,原来字符串的这个方法还能这么用!",好方法和好套路思想都是通过一些好题目积累、摸索出来的)
2.它与其他数据类型有较好的兼容、转化关系,例如:
字符串变Integer就是Integer i =Integer.parseInt(string);integer变字符串就是String str = integer1 + "";等等
你遇到其他数据类型的问题,都可以把对象先转换成String字符串类,再依赖于其强大的数据处理方法以及你自己的掌握能力,难题难度就这样一点点被分解了.
3.还有思路,做题前不要急着动笔,先把大概做题思路捋一捋,你的想法步骤能解决问题,就一步步转化成编程语言的步骤,卡住的地方绝对就是以前接触的很少的一些关于字符串进阶的用法了,个人在收集整理的题库里都有涉及及注释.
4.另外再做复杂难度的编程题的时候,一定要一步步来,比如:金额转换,阿拉伯数字转换成中国传统形式。例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整 这个题目,大概思路步骤是不是都会这么想,1:我要先拿出每一个数字, 2每一个数字去和中文汉子一一匹配, 3检查修改处理加工下
好,那么恭喜你,有个大概做题思路和步骤了,至少已经成功了三分之一吧,剩下的就是编程语言的转化了,你作每一步,都养成一个小习惯,做完这一步对你所需要的数据进行打印检验,看看是不是通过这一步之后自己获得了想要的数据,确定是的再往下走,不然题目复杂,等到最后才去校验,会很浪费时间,自己也会很没检验的头绪.
5.养成收集,整理的好习惯,那些自己不熟练,但是确实又是非常好用、强大的方法,一定要记下来,好记星不如烂笔头(当然这里推荐大家笔记都用电子文档来记,因为你自己写的东西多了,纸质的你都不知道该去哪里找,电子的只要ctrl+f搜你还记得住的关键字就可以了,另外电子档也方便修改)
6:养成勤于思考、归纳(如题目笔记、做法方法)、总结的好习惯,比如你拿到一个难题,你用一种方法做出来了,你也可以试着在想一种方法去解决,所谓举一反三是也,先把(一个)题目做大(做成多种解法),慢慢地你就会发现,你看题目,你会思绪万千,有很多种解法想法,"这个题目,我有一万种姿势解锁~~"(当然,如果难题自己花了个把小时实在还没有思路,我就建议可以和别人交流交流,或者换个时间段再想想,不要霸王硬上弓,没有状态还强磕,编程能力都是慢慢养成的,想当初我见到大题花个半天大半天都没思路,现在遇到同学发的编程题,至少都有一种方法解决,很少有卡住再耗费那么多时间的题目了,主要还是要养成这些好习惯,习惯成自然,自然就出思路、方法、答案)
自己整理的题库如下(回复可见,如果这里头的题目你都会做了,对付面试真的绰绰有余了,这些题目的综合难度比较高,分享宗旨:千行代码易得,一个好题目难求),辛苦码字分享不易,各位要是觉得还行,还望您不吝赐教几个黑马币以示鼓励,这样鄙人也更有动力为大家分享更多更实用更劲爆的东西.谢谢大家!
|