36 lines
995 B
Java
36 lines
995 B
Java
// Author: Rodney Shaghoulian
|
|
// Github: github.com/RodneyShag
|
|
// HackerRank: hackerrank.com/RodneyShag
|
|
|
|
import java.util.Scanner;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Pattern;
|
|
|
|
public class DuplicateWords {
|
|
|
|
public static void main(String[] args) {
|
|
|
|
String regex = "\\b(\\w+)(\\W+\\1\\b)+";
|
|
Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
|
|
|
|
Scanner in = new Scanner(System.in);
|
|
int numSentences = Integer.parseInt(in.nextLine());
|
|
|
|
while (numSentences-- > 0) {
|
|
String input = in.nextLine();
|
|
|
|
Matcher m = p.matcher(input);
|
|
|
|
// Check for subsequences of input that match the compiled pattern
|
|
while (m.find()) {
|
|
input = input.replaceAll(m.group(), m.group(1));
|
|
}
|
|
|
|
// Prints the modified sentence.
|
|
System.out.println(input);
|
|
}
|
|
|
|
in.close();
|
|
}
|
|
}
|