fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. System.out.print("3[a]2[bc]");
  13. // System.out.print(decodeString("3[a]2[bc]"));
  14. }
  15. public String decodeString(String s) {
  16. System.out.print(decodeString("3[a]2[bc]"));
  17. Stack<Character> ss = new Stack<>();
  18. Stack<String> bb = new Stack<>();
  19. boolean temp = false;
  20. int n = 0;
  21. String resl = "";
  22. for (Character c : s.toCharArray()) {
  23. if (c == '[') {
  24. n = ss.pop();//循环次数
  25. temp = true;
  26. } else if (c == ']') {
  27. temp = false;
  28.  
  29. StringBuilder sb = new StringBuilder();
  30. StringBuilder res = new StringBuilder();
  31. for (String cc : bb) {
  32. sb.append(cc);
  33. }
  34. bb.clear();
  35. //sb.reverse();
  36. for (int i = 0; i < n; i++) {
  37. res.append(sb);
  38. }
  39. resl += res.toString();
  40. n=0;
  41. } else {
  42. if (temp)
  43. bb.push("" + c);
  44. else
  45. ss.push( c);
  46. }
  47. }
  48. return resl;
  49.  
  50. }
  51. }
Success #stdin #stdout 0.07s 52472KB
stdin
Standard input is empty
stdout
3[a]2[bc]