728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Strings > Tag Content Extractor
XML이나 HTML과 같은 태그 기반 언어에서 콘텐츠는 <tag>콘텐츠</tag>와 같이 시작 태그와 끝 태그 사이에 포함됩니다. 해당 종료 태그는 /로 시작합니다.
태그 기반 언어로 된 텍스트 문자열이 주어지면 이 텍스트를 구문 분석하고 다음 기준을 충족하는 잘 구성된 태그 시퀀스 내에 포함된 내용을 검색합니다.
- 시작 태그와 종료 태그의 이름은 동일해야 합니다. 텍스트가 h1 태그로 시작하고 일치하지 않는 h2 태그로 끝나기 때문에 HTML 코드 <h1>Hello World</h2>가 유효하지 않습니다.
- 태그는 중첩될 수 있지만 중첩된 태그 사이의 내용은 유효하지 않은 것으로 간주됩니다. 예를 들어, <h1><a>콘텐츠</a>무효</h1>에서 콘텐츠는 유효하지만 무효는 유효하지 않습니다.
- 태그는 인쇄 가능한 모든 문자로 구성될 수 있습니다.
Input Format
- 입력의 첫 번째 줄에는 단일 정수 N(줄 수)이 포함됩니다.
- N개의 후속 줄에는 각각 한 줄의 텍스트가 포함됩니다.
Constraints
- 1 ≤ N ≤ 100
- 각 줄에는 최대 10⁴개의 인쇄 가능한 문자가 포함됩니다.
- 모든 테스트 케이스의 총 문자 수는 10⁶를 초과하지 않습니다.
Output Format
각 줄에 대해 유효한 태그 안에 포함된 내용을 출력합니다.
한 줄에 유효한 콘텐츠의 인스턴스가 여러 개 포함되어 있으면 유효한 콘텐츠의 각 인스턴스를 새 줄에 출력합니다. 유효한 내용이 없으면 None을 출력하세요.
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
Code
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int testCases = Integer.parseInt(in.nextLine());
Pattern p = Pattern.compile("<(.+)>([^<]+)</\\1>");
while(testCases>0){
String line = in.nextLine();
//Write your code here
Matcher m = p.matcher(line);
boolean matched = false;
while( m.find() ) {
matched = true;
System.out.println(m.group(2));
}
if( !matched ) {
System.out.println("None");
}
testCases--;
}
}
}
참고
개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.
728x90
반응형
'> 개발-IT-인터넷 > > JAVA' 카테고리의 다른 글
[해커랭크(HackerRank) JAVA 풀이] - Java Primality Test (0) | 2023.09.21 |
---|---|
[해커랭크(HackerRank) JAVA 풀이] - Java BigDecimal (0) | 2023.09.20 |
[해커랭크(HackerRank) JAVA 풀이] - Valid Username Regular Expression (0) | 2023.09.19 |
[해커랭크(HackerRank) JAVA 풀이] - Java Regex 2 - Duplicate Words (0) | 2023.09.19 |
자바 정규식 (Java RegExp) 정규표현식 사용법 (0) | 2023.09.18 |