import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HackerrankJava0024 { public static void main(String[] args) { // Java Regex 2 - Duplicate Words // https://www.hackerrank.com/challenges/duplicate-word/problem?isFullScreen=true String regex = "\\b(\\w+)(\\s+\\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(0), m.group(1)); } // Prints the modified sentence. System.out.println(input); } in.close(); } }