• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ACM s1124yy
守りたいものが 強くさせること
博客园    首页    新随笔    联系   管理     

POJ 3080 Blue Jeans(Java暴力)

Blue Jeans

【题目链接】Blue Jeans

【题目类型】Java暴力

&题意:

就是求k个长度为60的字符串的最长连续公共子串,2<=k<=10
规定:
1、 最长公共串长度小于3不输出
2、 若出现等长的最长的子串,则输出字典序最小的串

&题解:

这个我刚开始用c++写的,真的是恶心到我了,啥都要自己实现,所以突然就想到用Java试试,结果还真的挺简单.思路就是在第1个串中找出所有子串,之后去下面找就行了.
String.compareTo(Sting )是字符串比较; subString 区间是 [ , ) 左闭右开的; String.indexOf(str) 是返回str在字符串中第一次出现的位置,如果没有就返回-1

注意: 1.package zz 是不能放在提交代码里的 否则会Runtime Error
2.public static void main 中的static 不能去掉 否则会Runtime Error

&代码:

import java.io.*;
import java.math.*;
import java.util.*;

public class Main{
	
	static boolean ok(String t,int n,String s[]) {
		for(int i=1;i<n;i++) {
			if(s[i].indexOf(t)==-1) {
				return false;
			}
		}
		return true;
	}
	
    public static void main(String[] args) throws Exception{
    	Scanner cin=new Scanner(System.in);
    	int t=cin.nextInt();
    	while(t-->0) {
    		int n=cin.nextInt();
    		String[] s=new String[23];
//    		System.out.println("n="+n);
    		s[0]=cin.nextLine();
    		for(int i=0;i<n;i++) {
    			s[i]=cin.nextLine();
//    			System.out.println("s["+i+"]="+s[i]);
    		}
    		String ans="";
    		for(int i=0;i<s[0].length();i++) {
    			for(int j=i;j<s[0].length();j++) {
    				String te=s[0].substring(i, j+1);
    				if(ok(te,n,s)) {
//    					System.out.println(te);
//    					System.out.println(ans+"    ===");
    					if(ans.length()<te.length()) {
    						ans=te;
    					}
    					if(ans.length()==te.length()&&ans.compareTo(te)>0) {
    						ans=te;
    					}
    				}
    			}
    		}
    		if(ans.length()>=3) System.out.println(ans);
    		else System.out.println("no significant commonalities");
//    		System.out.println(ok("AGATAC",n,s));
    	}
    	cin.close();
    }
}
posted @ 2017-06-28 16:15  s1124yy  阅读(195)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3