java博客作业(一) | 您所在的位置:网站首页 › java双重for循环 › java博客作业(一) |
一、前言
题目集一 知识点:if 判断、for 循环、双重循环、输入输出语句、数据计算处理、格式化输出(保留两位小数、四舍五入取整数等)、制表符 \t 的使用、字符串处理、String类查找重复字符、字符串删减、数组查重、判断素数、GPS数据处理、求定积分等。 题量:较多 难度:难易交叉 题目集二 知识点:数据类型的转换、基础语法、判断闰年、求下一天 题量:一般 难度:一般 题目集三 知识点:类与方法设计、封装、LocalDate类型运用、boolean型数据、使用数组存放信息、求下n天以及两日期间相差天数 题量:少 难度:较难 二、设计与分析 题目集一 7-6 统计一个子串在整串中出现的次数 最开始看到这道题人挺懵的,怎么统计字符串里面一部分出现的次数?我应该把它们分成一个个字符放到数组里面,然后判断计算吗?打开课本看到String类相关的内容,才发现Java已经为我们提供了诸多处理String类数据的方法,根据课本给出的方法,我想到以下思路:String类里面的indexOf( )方法使我可以轻松得到字符在字符串中的位置,也就是说我现在处理字符串就如同处理数组,只需要通过下标增加“遍历”字符串,从而算出子串在整串出现的次数即可。而String类里面还特别提供了substring( )方法以方便我们获取子串。所以我用indexOf( b, x)判断是否包含子串,并返回子串下标,之后用substring(x+b.length())截取整串后面的部分,循环判断,得到子串次数。 源码如下: ![]() ![]()
7-7 有重复的数据 这题要求我们在一大堆数据中判断是否存在重复数据,返回“YES” or "No",看到此题第一眼当然是觉得小case,连重复次数都不需要计算,只要有一个数据重复一次便可以轻松结束,然而当我自信满满的掏出双重循环时,才被测试点狠狠的打了脸,“运行超时”,这意料之外却又情理之中,可我该如何将代码进行改进呢?怎样才能提高运行速度呢?对于此类大量数据的处理问题,我想到了曾经处理的判断素数问题,为了减少运行负担采用了二分法对数据进行处理。对于现在这道题,如果我想使用二分法,那就得先排序,可是之前在C语言学习的排序简直是复杂无比,想想应该会适得其反。于是便止步放弃了,我还需要一定的时间对此进行分析。因此最终还是提交了超时的二重循环代码。 二重循环源码如下: ![]() ![]() |
CopyRight 2018-2019 实验室设备网 版权所有 |