[Hackerrank] Strings - TagContentExtractor 풀이
예문
https://www.hackerrank.com/challenges/tag-content-extractor/problem
Sample Input
4
<h1>Nayeem loves counseling</h1>
<h1><h1>Sanjay has no watch</h1></h1><par>So wait for a while</par>
<Amee>safat codes like a ninja</amee>
<SA premium>Imtiaz has a secret crush</SA premium>
Sample Output
Nayeem loves counseling
Sanjay has no watch
So wait for a while
None
Imtiaz has a secret crush
해석
- 태그 내용 추출기
풀이
- 정규식 <(.+)>([^<]+)</\\1> 사용
- <(.+)> : < 로 시작하는 하나 이상의 문자 그룹
- ([^<]+) : ^가 아닌 하나 이상의 문자
- </\\1> : </ 로 시작하는 앞의 첫번째 그룹 (.+)
제약사항
- 1 <= n <= 100
코드
public String solution(String input){
String regex = "<(.+)>([^<]+)</\\1>";
boolean matchFound = false;
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
String output = "";
while (m.find()) {
input = m.group(2);
output += input;
System.out.println(output);
matchFound = true;
}
if(!matchFound){
output = "None";
System.out.println(output);
}
return output;
}