2024-08-01 老年人的数量
About 1 min
老年人的数量
您将获得一个从 0 索引开始的字符串 details 数组。 details 的每个元素提供有关压缩为长度为15字符串的给定乘客的信息。
1.前十个字符由乘客的电话号码组成。
2.下一个字符表示该人的性别。
3.下两个字符用于表示该人的年龄。
4.最后两个字符决定分配给该人的座位。
返回严格限制在60岁以上的旅客人数。
输入描述:第一行先输入随机整数的个数 N 。 接下来的 N 行每行输入一个整数,代表明明生成的随机数。
输入: details = ["7868190130M7522","5303914400F9211","9273338290F4010"]
输出: 2 The passengers at indices 0, 1, and 2 have ages 75, 92, and 40. Thus, there are 2 people who are over 60 years old.
解题思路
简单说下思路,已知固定位数是年龄,那么只需要知道这两个字符之"和"大于60即可。
亮点
- charAt,字符运算
- 减少声明,减少空间开销
- 时间复杂度为 O(n)
- 空间复杂度为 O(1)
实现
public class Day0801 {
public static void main(String[] args) {
System.out.println(new Day0801().countSeniors(new String[]{"7868190130M7522", "5303914400F9211", "9273338290F4010"}));
}
public int countSeniors(String[] details) {
int num = 0;
for (int i = 0; i < details.length; i++) {
if (details[i].charAt(11) - '0' >= 6 && details[i].charAt(12) - '0' > 0) {
num++;
}
}
return num;
}
}