Problem
You are given a 0-indexed array of strings details
. Each element of details
provides information about a given passenger compressed into a string of length 15
. The system is such that:
- The first ten characters consist of the phone number of passengers.
- The next character denotes the gender of the person.
- The following two characters are used to indicate the age of the person.
- The last two characters determine the seat allotted to that person.
Return the number of passengers who are strictly more than 60 years old.
Examples
Example 1:
Input: details = ["7868190130M7522","5303914400F9211","9273338290F4010"]
Output: 2
Explanation: 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.
Example 2:
Input: details = ["1313579440F2036","2921522980M5644"]
Output: 0
Explanation: None of the passengers are older than 60.
Solution
Method 1 - Use substring and Integer Parsing
Video Explanation
Here is the video explanation of the same:
Code
Java
class Solution {
public int countSeniors(String[] details) {
int count = 0;
for(String detail: details) {
int age = Integer.valueOf(detail.substring(11, 13));
if (age > 60) {
count++;
}
}
return count;
}
}
Complexity
- ⏰ Time complexity:
O(n)
, wheren
is number of elements in the array (Each ticket is of length 15, so O(15n) = O(n)) - 🧺 Space complexity:
O(1)