栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java语言中提供了两种类型的字符串类来处理字符串(字符串的基本处理)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java语言中提供了两种类型的字符串类来处理字符串(字符串的基本处理)

题目描述
语料拓展题:一行文本,其中定义两种特殊语法结构
1. "[一|二]",表示当前位置可选『一』或『二』或空
2. "(一|二)",表示当前位置可选『一』或『二』
两种语法不可嵌套,即不存在[(一|二)|三]这种语法。

给定一行文本,请输出它所有可能的普通文本的排列组合。

举例:我要去[一|二]的地方吃(三|四)可以吗?
可能的展开包括
1. 我要去一的地方吃三可以吗?
2. 我要去一的地方吃四可以吗?
3. 我要去二的地方吃三可以吗?
4. 我要去二的地方吃四可以吗?
5. 我要去的地方吃三可以吗?
6. 我要去的地方吃四可以吗?
解题思路

定义一个内部类,记录所有带替换位置以及待替换的值,使用回溯法将所有可能的结果输出即可

代码
public class Solution1 {

    // 定义一个内部类,存所有待替换的数据
    public class TmpPosition {
        // 开始位置
        public int stpos;
        // 结束位置
        public int edpos;
        // 类型
        public int type;
        // 待替换字符集
        public List strlist = new ArrayList<>();

        public void getlist(String str){
            if(str.charAt(0)=='('){
                type = 0;
            }
            if(str.charAt(0)=='['){
                type = 1;
            }

            // 先将括号内容提取出来
            String content = str.substring(1, str.length()-1);
            // 然后再将可选内容分割
            String[] contents = content.split("\|");
            for(int i=0; i result = new ArrayList<>();

    public static void main(String[] args) {
        //String s = "我要去[一|二]的地方吃(三|四)可以吗?";
        String s = "我要去[一|二]的地方吃(三|四)可以吗?(五|六)会更好吗[七|八]?(九|十)更好啊";
        Solution1 solution1 = new Solution1();
        solution1.getResult(s);
        solution1.print();
    }

    // 打印最后结果
    public void print(){
        for(int i=0; i poslist = new ArrayList<>();
        // 解析语料,将所有的可变结构都封装
        for(int i=0; i poslist, String s, int len,int k){
        if(k == poslist.size()){
            result.add(s);
            return;
        }
        int offset = len-s.length();
        // 这里面进行替换
        TmpPosition pos = poslist.get(k);
        String s1 = s.substring(0, pos.stpos-offset);
        String s2 = s.substring(pos.edpos-offset+1);
        for(int j=0; j 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773594.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号