求助ACM!!!SDUT-1008 最大公共子串

m0_37922822 2017-03-15 09:06:09
SDUT-1008 最大公共子串的问题,用java写的代码测试没有错误,为什么提示wa

import java.util.Scanner;
public class EqualString {
//对一组测试输入pn个字符串
public String[] inputStr(Scanner pin,int pn){
String[] str=new String[pn];
for (int i = 0; i < pn; i++) {
str[i]=pin.next();
}
return str;
}
//寻找一组测试中最短的字符串
public int minStr(String[] pstr){
//k用来记录最短字符串的位序
int k=0;
String minstr=pstr[0];
for (int i = 0; i < pstr.length; i++) {
if(pstr[i].length()<minstr.length()){
minstr=pstr[i];
k=i;
}
}
return k;
}
public int equalNum(String[] pstr,int pk){
//把一组测试中所有的字符串都拆成字符数组,并把最短的字符串pminstr单独拿出来
//创建二维不规则字符数组来存储每个字符串转换成的字符,第一维的长度是该组测试数据的字符串个数,第二维的长度是该组测试中每个字符串的长度,第二维的长度是不规则的
char[][] strCh=new char[pstr.length][];
for (int i = 0; i < pstr.length; i++) {
//len用来记录一组测试中每个字符串的长度
int len=pstr[i].length();
//将每个字符串转化为一个字符数组
strCh[i]=new char[len];
strCh[i]=pstr[i].toCharArray();
}
//pk是最短的字符串,拿第k个字符串pstr[k]转换成的字符数组strCh[k]与其他字符数组作比较即可
//用num来记录在所有字符数组中都出现的相同的字符的个数
int num=0;
//三重循环:从strCh的第一个字符strCh[k][0]开始,拿strCh[k]中的每一个字符与所有字符数组比较,若所有字符数组都包含该字符,则num+1
//从strCh[k]的第i个字符开始比较
for (int i = 0; i < strCh[pk].length; i++) {
//比较该组测试的第j个字符串
int j;
for (j = 0; j < pstr.length; j++) {
//将第j个字符串转换成的字符数组的第k个字符与strCh[k]的第i个字符比较
int k = 0;
while( k < strCh[j].length&&strCh[j][k]!=strCh[pk][i])
k++;//当第j个字符串转换成的字符数组的第k个字符!=strCh[k]的第i个字符时,比较第j个字符串的下一个字符
if(k>=strCh[j].length)
break;//遍历第j个字符串转换成的字符数组,如果都不与strCh[k]的第i个字符相等,就不再遍历下一个字符串
}
if(j>=pstr.length)
num++;//如果strCh[k]的第i个字符已经与所有字符串都进行了比较,说明前面的if没有退出,即所有字符串中都包含strCh[k]的第i个字符
}
return num;
}
public static void main(String args[]){
EqualString es=new EqualString();
//设置测试数据的个数t
Scanner in=new Scanner(System.in);
while(in.hasNext()){
int t=in.nextInt();
while(t>0){
//每组测试有n个字符串
int n=in.nextInt();
String[] str=es.inputStr(in, n);//将这n个字符串存在一个字符串数组str中
int min=es.minStr(str);//寻找这n个字符串中最短的字符串
System.out.println(es.equalNum(str, min));
t--;
}
}
}
}
...全文
170 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文针对复杂三维环境下多无人机动态避障路径规划问题,提出一种基于蚁狮优化算法(ALO)的解决方案,并通过Matlab实现算法仿真。研究重点在于解决多无人机在飞行过程中面对静态与动态障碍物时的安全避障与路径最优问题。ALO算法模拟自然界中蚁狮捕食行为的捕猎机制,通过“陷阱构建”“诱捕猎物”“淘汰劣解”等操作实现对无人机路径的全局搜索与动态优化。文中设计了一个综合考量路径长度、飞行高度、环境威胁等级及转弯角度等因素的多目标代价函数,以实现低能耗、高安全性和强适应性的飞行路径规划。在复杂三维空间中设置了多个动态障碍物场景,通过仿真实验验证了该方法在路径合理性、避障实时性以及收敛稳定性方面的优越性能,为城市搜救、灾害应急、军事侦察等多机协同任务提供了有效的路径规划技术支持。; 适合人群:具备一定编程基础和优化算法理论背景,从事无人机系统控制、智能优化算法研究、路径规划或自动化相关领域的科研人员、工程技术人员及研究生。; 使用场景及目标:①应用于城市密集建筑区、山区地形或灾害现场等复杂三维动态环境中多无人机协同执行侦察、救援或监测任务的路径规划;②用于提升无人机集群在未知或时变环境中自主导航、实时避障与协同决策能力的研究与系统开发; 阅读建议:建议结合提供的Matlab代码深入理解ALO算法的具体实现流程,重点关注目标函数的设计思路、动态障碍物建模方式以及种群迭代过程中的路径更新策略,同时可将该方法与其他智能优化算法(如PSO、GWO、WOA)在相同场景下进行对比实验,以全面评估其性能优势与适用边界。

51,409

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧