宇智波若兰 level
获赞
16
粉丝
1
关注
6
看过 TA
4
复旦大学
2023
Java
IP属地:上海
暂未填写个人简介
私信
关注
2019-04-11 12:34
已编辑
复旦大学 Java
题目描述 给定一个字符串,字符串包含数字、大小写字母以及括号(包括大括号,中括号,小括号),括号可以嵌套,即括号里面可以出现数字和括号。 按照如下规则对字符串进行展开,不需要考虑括号不成对的问题,不考虑数字后面没有括号的情况,即 2a2(b)不考虑。 数字表示括号里的字符串重复的次数,展开后的字符串不包含括号 将字符串进行逆序展开 输入abc2{de3[fg]} 输出gfgfgfedgfgfgfedcba 解法 利用栈进行计算,每次判断此时是否是右括号,如果是的话,拿到对应的左括号之前的所有字符,在拿到对应左括号的数字,对字符进行重复以后,全部入栈。 如果不是右括号,那么直接入栈。 im...
看我脸上有啥:import java.util.Scanner; public class Main2{     public static void main(String[] args) {         // TODO Auto-generated method stub         Scanner scanner=new Scanner(System.in);         String input=scanner.nextLine();         String output=getStr(input);         for(int i=output.length()-1;i>=0;i--)         {             System.out.print(output.charAt(i));         }                   }     public static String getStr(String temp)     {         StringBuilder stringBuilder=new StringBuilder();         int end=0;         for(int i=0;i<temp.length();)         {             if(temp.charAt(i)>='0'&&temp.charAt(i)<='9')             {                 if(temp.charAt(i+1)=='{')                 {                     end=temp.lastIndexOf("}");                 }                 else if(temp.charAt(i+1)=='[')                 {                     end=temp.lastIndexOf("]");                 }                 else if(temp.charAt(i+1)=='(')                 {                     end=temp.lastIndexOf(")");                 }                 for(int j=0;j<temp.charAt(i)-'0';j++)                 {                     stringBuilder.append(getStr(temp.substring(i+2,end)));                 }                 i=end+1;             }             else             {                 stringBuilder.append(temp.charAt(i));                 i++;             }             }         return stringBuilder.toString();     } } 递归实现~
投递华为等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务