大生活家
2022-04-07 15:55
采纳率: 0%
浏览 93

蓝桥云课-无效的返回

提交后显示“无效的返回”
在编译器显示正常

###### 问题相关代码,请勿粘贴截图 

```java
import java.util.*;
public class Main {    
    public static String dfs(String str)//递归处理正则表达式(先处理内层表达式,一层一层简化)
    {
        boolean f=true;
        for(char c:str.toCharArray())
            if(c!='x')//判断是否已经简化极致(仅剩一堆‘x’)
                {
                f=false;
                break;
                }
            if(f)
                return str;
            
            String str1="";//储存新的正则表达式(简化过的)
            for(int i=0;i<str.length();i++)//
            {
                
                if(str.charAt(i)=='('&&str.charAt(i+1)=='x')//当碰到"(x..."开头的,")"结尾的
                {
                    String ss="";//将碰到的(x...)小正则表达式储存进ss中
                    for(i+=1;i<str.length();i++)//
                    {
                        if(str.charAt(i)!=')')
                        ss+=str.charAt(i);
                        else
                            break;
                    }
                        String[] s=new String[2];
                        s=ss.split("\\|");//以“|”分割小正则表达式,判断小正则表达式结果
                        if(s[0].length()>s[1].length())//x多的就是结果,并将结果储存进str1(新正则表达式)中
                            str1+=s[0];
                        else
                            str1+=s[1];
                }    
                else
                    str1+=str.charAt(i);    
            }
            return dfs(str1);        //    将获得的简化新正则表达式重复此操作,直到完全简化
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();      
       System.out.print(dfs(str).length()); //输出此正则表达式的长度
       sc.close();
    }
    
}

img

img

2条回答 默认 最新

相关推荐 更多相似问题