Day 28: RegEx, Patterns, and Intro to Databases - HackerRank 30 days of code solution
Objective
Today, we're working with regular expressions.
Today, we're working with regular expressions.
Task
Consider a database table, Emails, which has the attributes First Name and Email ID. Given rows of data simulating the Emails table, print an alphabetically-ordered list of people whose email address ends in .
Consider a database table, Emails, which has the attributes First Name and Email ID. Given rows of data simulating the Emails table, print an alphabetically-ordered list of people whose email address ends in .
Input Format
The first line contains an integer, , total number of rows in the table.
Each of the subsequent lines contains space-separated strings denoting a person's first name and email ID, respectively.
Each of the subsequent lines contains space-separated strings denoting a person's first name and email ID, respectively.
Constraints
- Each of the first names consists of lower case letters only.
- Each of the email IDs consists of lower case letters , and only.
- The length of the first name is no longer than 20.
- The length of the email ID is no longer than 50.
Output Format
Print an alphabetically-ordered list of first names for every user with a gmail account. Each name must be printed on a new line.
Sample Input
6
riya riya@gmail.com
julia julia@julia.me
julia sjulia@gmail.com
julia julia@gmail.com
samantha samantha@gmail.com
tanya tanya@gmail.com
Sample Output
julia
julia
riya
samantha
tanya
Solution :
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
String emailRegEx = ".+@gmail\\.com$";
Pattern pattern = Pattern.compile(emailRegEx);
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < N; i++) {
String name = in.next();
String email = in.next();
Matcher matcher = pattern.matcher(email);
if (matcher.find()) list.add(name);
}
Collections.sort(list);
list.forEach(System.out::println);
}
}
Comments
Post a Comment