哈喽,各位小伙伴们好,我是喵手。
一、前言
正值金九银十好时节,又到了刷算法题日。xdm,有空的大家一起来呀。无论你是挤公交还是坐地铁时间,随时随地皆可,你可以不用实操,你只需要看题并思考,完后有空coding就好了。接下来我要开启我的刷题之旅啦,喜欢的小伙伴欢迎点赞关注哦。
二、题目描述:
题目1:
统计一段英语句子中带有多少个“o”的字符。
题目2:
判断闰年平年并且输出某月的天数。
三、思路分析:
题1:统计一段英语句子中带有多少个“o”的字符。
- 首先、最先想到的就是对这个句子整体进行一次循环遍历。
- 先定义一个count计数,然后每次循环都判断是否是匹配字符‘o’,若是匹配到是字符串‘o’,就进行count++。
- 否则直接跳过。
- 最后返回count即为题解。
题2:判断闰年平年并且输出某月的天数。
首先我们先得了解如何判断是否闰年?如下是闰年的规则,。
- 年份能被 4 整除。
- 年份若是 100 的整数倍,须被 400 整除,否则是平年。
如下是解题思路啊:
- 我们先定义一个判断是否平年闰年的计算方法,入参就是年份,然后出参返回一个布尔值,是闰年就返回true,否则返回false。
- 结合判断平闰年方法进行月份天数输出。
- 已知每个月具体天数,所以我们可通过枚举1-12月的天数即可。
- 唯独就是平闰年天数的改变,这可以在一开始就判断年份,单独把2月的天数进行一个零时变量控制,是闰年就赋值29,平年就赋值28。
四、算法实现:
题1AC代码:
/**
* 判断英语句子中,出现o的次数为多少?
*/
public static void count() {
String word = "Whatever is worth doing is worth doing well.";
//统计o出现次数
int count = 0;
//进行循环遍历
for (int i = 0; i < word.length(); i++) {
//获取当前i位置的字符
char c = word.charAt(i);
//若是字符o
if (c == 'o') {
//次数加一
count++;
continue;
}
}
}
题2AC代码:
1、我们先定义一个判断是否平年闰年的计算方法,入参就是年份,然后出参返回一个布尔值,是闰年就返回true,否则返回false。
/**
* 判断是否闰年。
*/
public static boolean isRn(int year) {
//判断是否是闰年.条件成立其一就是闰年。
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
System.out.println(year + "年是闰年哦");
return true;
}
System.out.println(year + "年是平年哦");
return false;
}
2、结合判断平闰年方法进行月份天数输出。
/**
* 手动判断月份返回天数
*/
public static void returnDayNum(int year, int month) {
//默认平年2月天数。
int twoMonth = 28;
int days = 0;
//先判断是否闰年
if (isRn(year)) {
twoMonth = 29;
}
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
days = twoMonth;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 0;
break;
}
System.out.println("你查询的" + year + "年" + month + "月份有" + days + "天");
}
五、总结:
这两题其实就是在考察我们所学的java基础之循环控制流程,如果对java的流程控制基本掌握,那么这两道题基本就是秒杀,第一道是遍历考察,第二道无非多了一个平闰年条件+switch语句判断,别的基本都没考察。
如果你有更好的解题思路或者想法,欢迎评论区留言告诉我。
六、文末:
好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。
... ...
学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!
wished for you successed !!!
---------------------------------------------------------------------
⭐️若喜欢我,就请关注我叭。
⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。
---------------------------------------------------------------------