Problem Description
最后的挑战终于到了!
站在yifenfei和MM面前的只剩下邪恶的大魔王lemon一人了!战胜他,yifenfei就能顺利救出MM。
Yifenfei和魔王lemon的挑战很简单:由lemon给出三个字符串,然后要yifenfei说出第一串的某个子串,要求该子串长度最小,并且同时包含第2个串和第3个串。
特别地,如果有多个这样的子串,则请输出字母序最小的一个。
 
Input
输入数据首先是一个整数C,表示测试数据有C组;
接着是C组数据,每组包含三行字符串,第一个字符串长度大于1小于100
后面两个串的长度大于1且小于10
 
Output
请对应每组输入数据输出满足条件的最短子串;
如果没有,请输出 No
 
Sample Input
2
abcd
ab
bc
abc
ab
bd
 
Sample Output
abc
No
 
 
 
好久没做题了,找了个字符串稍微难一点的水题来做XD
(PS:主要我是仙剑骨灰迷~~~~~~超喜欢剑仙云天青和他的儿子咯)
 
这个题目关键就是在于找到相同长度的子串的时候,要按照字典序升序来输出,因此这里需要比较一下。
大JAVA的TreeSet就派上用场啦。
 
步骤:
1.找到子串b,c是否被包含于a中,否则"No"
2.如果找打了,找出他们出现的位置(dist)的距离的绝对值最小值.
3.放入TreeSet,剔除长于本次找到的子串.
4.输出字典序升序答案.
 
 
 
JAVA CODE:
import java.util.Scanner;
import java.util.TreeSet; public class Main { public static String go( String a, String b, String c ) {
TreeSet<String> set = new TreeSet<String>();
if( !a.contains( b ) || !a.contains( c ) ) {
return "No";
} else {
int dist = Integer.MAX_VALUE;
for( int i = 0; i < a.length(); i++ ) {
int index1 = a.indexOf( b, i );
int index2 = a.indexOf( c, i );
if( index1 >= 0 && index2 >= 0 ) {
if( Math.abs( index1 - index2 ) <= dist ) {
int start = 0;
int end = 0;
if( index2 > index1 ) {
end = index2 + c.length();
start = index1;
} else {
end = index1 + b.length();
start = index2;
}
dist = Math.abs( index1 - index2 );
String result = a.substring( start, end );
if(set.size() > 0){
String pre = set.first();
if(result.length() < pre.length()){
set.pollFirst();
}
}
set.add( result );
}
}
}
}
return set.first();
} public static void main( String[] args ) {
Scanner sc = new Scanner( System.in );
if( sc.hasNext() ) {
int num = sc.nextInt();
for( int i = 0; i < num; i++ ) {
String a = sc.next();
String b = sc.next();
String c = sc.next();
System.out.println( go( a, b, c ) );
}
}
}
}
 

[HDOJ2572]终曲的更多相关文章

  1. Recommending music on Spotify with deep learning 采用深度学习算法为Spotify做基于内容的音乐推荐

    本文参考http://blog.csdn.net/zdy0_2004/article/details/43896015译文以及原文file:///F:/%E6%9C%BA%E5%99%A8%E5%AD ...

  2. 【BZOJ3622】已经没有什么好害怕的了

    Description 已经使 Modoka 有签订契约, 和自己一起战斗的想法后 , Mami 忽然感到自己不再是孤单一人了呢. 于是, 之前的谨慎的战斗作风也消失了 , 在对 Charlotte ...

  3. 洛谷 P4859 已经没有什么好害怕的了 解题报告

    已经没有什么好害怕的了 题目描述 已经使\(\tt{Modoka}\)有签订契约,和自己一起战斗的想法后,\(\tt{Mami}\)忽然感到自己不再是孤单一人了呢. 于是,之前的谨慎的战斗作风也消失了 ...

  4. 2018天梯赛第一次训练题解和ac代码

    随着评讲的进行代码和题解会逐步放上来 2018天梯赛第一次训练 1001 : 进制转换 Time Limit(Common/Java):1000MS/10000MS     Memory Limit: ...

  5. Eva 剧情解析

    Eva 剧情解析 来源 https://zhuanlan.zhihu.com/p/20864898 [0.写在前面的话] 相信和我年龄差不多的小伙伴们对<新世纪福音战士>( <Neo ...

  6. 【breathandlife】气势磅礴、比较好听的旋律有哪些?

    [breathandlife]气势磅礴.比较好听的旋律有哪些? 分享:yunbest作者:来源:2015-10-26 专题:breathandlife [breathandlife]气势磅礴.比较好听 ...

  7. Membership三步曲之进阶篇 - 深入剖析Provider Model

    Membership 三步曲之进阶篇 - 深入剖析Provider Model 本文的目标是让每一个人都知道Provider Model 是什么,并且能灵活的在自己的项目中使用它. Membershi ...

  8. docker-compose下的java应用启动顺序两部曲之二:实战

    上篇回顾 本文是<docker-compose下的java应用启动顺序两部曲>的终篇,在上一篇<docker-compose下的java应用启动顺序两部曲之一:问题分析>中,我 ...

  9. Membership三步曲之入门篇 - Membership基础示例

    Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Pro ...

随机推荐

  1. C-Sharp网络编程案例解析(Socket类的使用)

    Server端: using System; using System.Collections.Generic; using System.Text; using System.Net; using ...

  2. [bzoj2120][数颜色] (暴力 or 分块)

    Description 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问.墨墨会像你发布如下指令: 1. Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜 ...

  3. js原生之一个面向对象的应用

    function IElectricalEquipment() { }        IElectricalEquipment.prototype = {            poweron: fu ...

  4. ImageView及其子类(一)

    ImageView继承自View组件,它的主要功能是用于显示图片——实际上这个书法不太严谨因为他能显示的不仅是图片,任何Drawable对象都可以使用ImageView来显示.除此之外,ImageVi ...

  5. IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口

    IIS7和Tomcat7整合,即IIS7和Tomcat共用80端口 背景: 最近公司有一个项目要上线,需要用到iis和tomcat整合,共用80端口.由于公司的数据都非常重要,只通过端口映射到外网的8 ...

  6. jQuery内容过滤器

    jQuery内容过滤器 <h1>this is h1</h1> <div id="p1"> <h2>this is h2</h ...

  7. HDU1494(dp)

    跑跑卡丁车 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  8. Spark:控制日志输出级别

    Spark:控制日志输出级别 终端修改 在pySpark终端可使用下面命令来改变日志级别 sc.setLogLevel("WARN") # 或者INFO等 修改日志设置文件 ** ...

  9. SQL Server-聚焦存储过程性能优化、数据压缩和页压缩提高IO性能(一)

    前言 关于SQL Server基础系列尚未结束,还剩下最后一点内容未写,后面会继续.有园友询问我什么时候开始写SQL Server性能系列,估计还得等一段时间,最近工作也比较忙,但是会陆陆续续的更新S ...

  10. MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询

    本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如何更改查询执行计划,当我们深入理解MySql如何真正地执行查询,明白高效和低效的真正含义,在实际应用中就能扬长避 ...