package hdu;
import java.io.BufferedInputStream;
import java.util.Scanner;
public class Main {
private static int len ;
private static String s ;
private static int DFS(int p){
int num = 0 ;
for(int i=p;i<len;i++){
if(s.charAt(i)>='a'&&s.charAt(i)<='z'){//遇到字母就打印,次数为最近的temp
int temp = Math.max(num,1) ;
for(int j=0;j<temp;j++){
System.out.print(s.charAt(i));
}
num = 0 ;
}else if(s.charAt(i)>='0'&&s.charAt(i)<='9'){//遇到数字就记录次数
num = num*10 +s.charAt(i) - '0' ;
}else if(s.charAt(i)=='('){//遇到'('就往下DFS
int temp = Math.max(num,1) ;
for(int j=0;j<temp-1;j++){//DFS共递归temp次
DFS(i+1) ;
}
i = i + DFS(i+1) + 1 ;
num = 0 ;
}else{
return i - p ;//跳过字串
}
}
return 0 ;
}
public static void main(String[] args) {
Scanner scan = new Scanner(new BufferedInputStream(System.in)) ;
int T = scan.nextInt() ;
scan.nextLine() ;
while(T-->0){
s = scan.next() ;
len = s.length() ;
DFS(0) ;
System.out.println() ;
}
}
}
hdu1274展开字符串-DFS(java)
最新推荐文章于 2024-07-27 13:31:57 发布