试题 算法提高 Substrings

问题描述

  You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found as a substring of any of the given strings.

输入格式

  The first line of the input contains a single integer t (1 <= t <= 10), the number of test cases, followed by the input data for each test case. The first line of each test case contains a single integer n (1 <= n <= 100), the number of given strings, followed by n lines, each representing one string of minimum length 1 and maximum length 100. There is no extra white space before and after a string.

输出格式

  There should be one line per test case containing the length of the largest string found.

样例输入

2

3

ABCD

BCDFF

BRCD

2

rose

orchid

样例输出

2

2

试题来源

  Tehran 2002 Preliminary

PS:

这道题非常感谢网易词典,规避了我致命的英语

 

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
for (int i = 0; i < a; i++) {
int n=sc.nextInt();
String[]arr=new String[n];
String mins="";
int len = 101;
int index=0;
for (int j = 0; j < n; j++) {
arr[j]=sc.next();
int l = arr[j].length();
if (l<len) {
len=l;
mins=arr[j];
index=j;
}
}
for (int j = len; j >=0 ; j--) {
boolean f=true;
for (int k = 0; k +j<=len ; k++) {
boolean flag1=true;
boolean flag2=true;
//在最短的字符串里面寻找
String sub=mins.substring(k,j+k);
for (int l = 0; l < n; l++) {
if (l==index) {
continue;
}
//没有找到就换成下一个字符串去查
if (!arr[l].contains(sub)) {
flag1=false;
break;
}
}
//当前字符串如果每个都包含的话就可以退出去了
if (flag1) {
System.out.println(j);
f=false;
break;
}
String sub1=new StringBuilder(sub).reverse().toString();
for (int l = 0; l < n; l++) {
if (l==index) {
continue;
}
if (!arr[l].contains(sub1)) {
flag2=false;
break;
}
}
if (flag2) {
System.out.println(j);
f=false;
break;
}
}
if (!f) {
break;
}
}
}
}
}

Java实现 蓝桥杯 算法提高VIP Substrings(暴力)的更多相关文章

  1. Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)

    试题 算法提高 转圈游戏 问题描述 n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在 ...

  2. Java实现 蓝桥杯 算法提高 特等奖学金(暴力)

    试题 算法提高 特等奖学金 问题描述 土豪大学每年都会给学生颁发巨额的特等奖学金,当然,获奖的前提是要足够优秀.这所大学有n名学生,他们中的每个人都会在m门必修课的每门课上获得一个百分制的整数成绩(0 ...

  3. Java实现 蓝桥杯 算法提高 GPA(暴力)

    试题 算法提高 GPA 问题描述 输入A,B两人的学分获取情况,输出两人GPA之差. 输入格式 输入的第一行包含一个整数n表示A的课程数,以下n行每行Si,Ci分别表示第i个课程的学分与A的表现. G ...

  4. Java实现 蓝桥杯 算法提高VIP 摆花 dp 记忆搜索 2种做法 多重背包

    题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...

  5. 问题 1936: [蓝桥杯][算法提高VIP]最大乘积

    问题 1936: [蓝桥杯][算法提高VIP]最大乘积 时间限制: 1Sec 内存限制: 128MB 提交: 77 解决: 16 题目描述 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? ...

  6. Java实现 蓝桥杯 算法提高 进攻策略加强(暴力)

    试题 算法提高 进攻策略加强 问题描述 植物大战僵尸这款游戏中,还有一个特别的玩儿法:玩家操纵僵尸进攻植物. 首先,僵尸有m种(每种僵尸都是无限多的),玩家可以选择合适的僵尸来进攻.使用第i种僵尸需要 ...

  7. Java实现 蓝桥杯 算法提高 小X的购物计划

    试题 算法提高 小X的购物计划 问题描述 小X打算去超市shopping.小X没什么钱,只有N元.超市里有M种物品,每种物品都需要money,在小X心中有一个重要度.有的物品有无限件,有的物品只有几件 ...

  8. Java实现 蓝桥杯 算法提高 天天向上(DP)

    试题 算法提高 天天向上 问题描述 A同学的学习成绩十分不稳定,于是老师对他说:"只要你连续4天成绩有进步,那我就奖励给你一朵小红花."可是这对于A同学太困难了.于是,老师对他放宽 ...

  9. Java实现 蓝桥杯 算法提高 欧拉函数(数学)

    试题 算法提高 欧拉函数 问题描述 老师出了一道难题,小酱不会做,请你编个程序帮帮他,奖金一瓶酱油: 从1-n中有多少个数与n互质? |||||╭══╮ ┌═════┐ ╭╯让路║═║酱油专用车║ ╰ ...

随机推荐

  1. uCOS2014.1.8

    目前uCOS中已经接触到的全局变量: OSTCBCur OSIntNesting OSPrioHighRdy    最高优先级任务 任哲编著<嵌入式实时操作系统uC/OS-II原理及应用> ...

  2. java经典问题 byte b=1、b=b+1、b+=1

    直接问题: 首先 byte的范围 [-128,127] byte 类型可以自动转为int类型 int类型不能自动转为byte类型. 超过byte的范围,就会变成int类型了 byte b=1:正确, ...

  3. sql:exists 与 not exists

    $sql = "select a.Vchcode,a.vdate,a.btypeid,a.vcomment,a.total,a.vnumber,b.bfullname,b.artotal,b ...

  4. css3盒子flex

    一.定义在容器上的属性有6个: 1.flex-direction: 决定主轴的方向,即项目的排列方向. 属性值:row.row-reverse.column.column-reverse: 2.fle ...

  5. SSH三大框架知识点

    Hibernate ****************************************************************************************** ...

  6. HTML标签和属性一

    一.web基础知识 html,专门指网页技术 HTML5,大前端技术(网页,app,桌面程序,数据可视化,VR....) 网页(pc,pad,phone) app  wx  服务器 数据库 HTML5 ...

  7. 4.1Go if-else

    1. Go if-else Golang程序的流程控制决定程序如何执行,主要有三大流程控制,顺序控制.分支控制.循环控制. 条件语句需要定义一个或多个条件,并且对条件测试的true或false来决定是 ...

  8. 安卓网络编程学习(1)——java原生网络编程(1)

    写在前面 马上要进行第二轮冲刺,考虑到自己的APP在第一轮冲刺的效果不尽人意,有很多网络方面的小BUG,这里就系统学习一下网络编程,了解来龙去脉,以便更好的对项目进行优化处理. http协议 http ...

  9. charles 抓包iOS模拟器 HTTPS请求

    参考: https://www.jianshu.com/p/3bfae9ede35e https://www.jianshu.com/p/171046d9f4f9 https://www.jiansh ...

  10. 【Redis】String应用场景

    单值缓存 SET key value GET key 对象缓存 SET user: value(json格式数据) MSET user::name value1 user::balance value ...