博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ex 6_9 某个字符串处理语言提供了一个将字符串一分为二的基本操作..._第六次作业...
阅读量:4613 次
发布时间:2019-06-09

本文共 1944 字,大约阅读时间需要 6 分钟。

设字符串的长度为n,整型数组arr[0. . .n-1]的第一个数和最后一个数为开始点与结束点的位置,中间的数为拆分点的位置,设cost[i,j]为第i个分割点到第j个分割点的最小代价,两个分割点之间要有大于等于一个分割点才能把字符串继续拆分,因此j-i>=2; 得到递推式

 

1 package org.xiu68.ch06.ex6; 2  3 public class Ex6_9 { 4  5     public static void main(String[] args) { 6         // TODO Auto-generated method stub 7         //分割的最小代价为:30 8         //分割顺序为: 10 3  9         int[] arr=new int[]{1,3,10,20};          //设开始点为1和20,中间三个点为拆分点10         int[][] splitPoint=new int[arr.length+1][arr.length+1];11         minSplitCost(arr,splitPoint);12         System.out.print("分割顺序为: ");13         printSplitPoint(arr,splitPoint,1,arr.length);14         System.out.println();15         16         17         //分割的最小代价为:4818         //分割顺序为: 10 8 2 19         int[] arr2=new int[]{1,2,8,10,30};20         int[][] splitPoint2=new int[arr2.length+1][arr2.length+1];21         minSplitCost(arr2,splitPoint2);22         System.out.print("分割顺序为: ");23         printSplitPoint(arr2,splitPoint2,1,arr2.length);24     }25     26     27     public static void minSplitCost(int[] arr,int[][] splitPoint){28         int[][] cost=new int[arr.length+1][arr.length+1];29         int length=arr.length;30         for(int s=2;s<=length;s++){                //分割点的个数31             for(int i=1;i<=length-s+1;i++){        //第一个分割点32                 int j=i+s-1;                    //最后一个分割点33                 if(j-i>=2)                        //两个分割点之间要有大于一个的分割点才能继续分割34                     cost[i][j]=Integer.MAX_VALUE;35                 for(int k=i+1;k<=j-1;k++){        //寻找分割子串最小代价对应的分割位置36                     int temp=cost[i][k]+cost[k][j]+arr[j-1]-arr[i-1]+1;37                     if(temp
=2){49 System.out.print(arr[splitPoint[i][j]-1]+" ");50 printSplitPoint(arr,splitPoint,i,splitPoint[i][j]);51 printSplitPoint(arr,splitPoint,splitPoint[i][j],j);52 }53 }54 }
View Code

 

转载于:https://www.cnblogs.com/xiu68/p/7989030.html

你可能感兴趣的文章
MVVM(Model-View-View-Model)简单分析(及代码示例)
查看>>
Mac 下 android/iOS https抓包
查看>>
安装VMwareTool
查看>>
CentOS 7安装Oracle 12c
查看>>
uva - 10071 Back to High School Physics 解题报告
查看>>
“Project 'MyFunProject' is not a J2SE 5.0 compliant project.”
查看>>
python操作mysql(4)--增删改查
查看>>
python的函数功能
查看>>
AttributeError: 'str' object has no attribute 'copy'
查看>>
给树莓派开启samba服务
查看>>
linux find命令中-print0和xargs中-0的用法
查看>>
3dContactPointAnnotationTool开发日志(二六)
查看>>
POJ 2584 T-Shirt Gumbo (二分图多重最大匹配)
查看>>
Java并发编程笔记之ArrayBlockingQueue源码分析
查看>>
局域网聊天工具的设计与实现 java设计代写代做代码源代码
查看>>
rabbitMQ 安装,集群搭建, 编码
查看>>
[AHOI 2009] 中国象棋
查看>>
NOIP2018 模拟 9.13
查看>>
VS2012 调试Web项目 遭遇 HTTP 错误 500.23 - Internal Server Error
查看>>
python练习
查看>>