class KOFTest { @Test public final void testKoofFindOne() { KOF kof = new KOF(Arrays.asList("ABCD")); String koof = kof.koof("ABC"); Assert.assertEquals("ABCD", koof); } } public class KOF { private static final int KEYLEN = 3; static Listlist = null ; public KOF(List asList) { this.list = asList; } public String koof(String str){ for(String s : list){ // System.out.println(str.substring(str.length()-3)); // System.out.println(s.startsWith("ABC")); if(s.startsWith(str.substring(str.length()-KEYLEN))){ return s; } } return ""; } }
结束条件
找到第一个可以使用的串
@Test public final void testKoofFindNone() { KOF kof = new KOF(Arrays.asList("ABCD")); String koof = kof.koof("ABE"); Assert.assertEquals("ABE", koof); } @Test public final void testKoofFindOne() { KOF kof = new KOF(Arrays.asList("ABCD")); String koof = kof.koof("ABC"); Assert.assertEquals("ABCD", koof); } @Test public final void testKoofFindTwo() { KOF kof = new KOF(Arrays.asList("ABCD","BCDF")); String koof = kof.koof("ABCD"); Assert.assertEquals("ABCDF", koof); } public String koof(String str){ Listselect = new ArrayList (); for(String s : list){ System.out.println(str.substring(str.length()-3)); if(s.startsWith(str.substring(str.length()-3))){ select.add(s); } } System.out.println(select); for(String s : select){ return str+s.substring(s.length()-1); } return str; } }
底归
@Test public final void testKoofFindNone() { KOF kof = new KOF(Arrays.asList("ABCD")); String koof = kof.koof("ABE"); Assert.assertEquals("ABE", koof); } @Test public final void testKoofFindOne() { KOF kof = new KOF(Arrays.asList("ABCD")); String koof = kof.koof("ABC"); Assert.assertEquals("ABCD", koof); } @Test public final void testKoofFindTwo() { KOF kof = new KOF(Arrays.asList("ABCD","BCDF")); String koof = kof.koof("ABCD"); Assert.assertEquals("ABCDF", koof); } @Test public final void testKoofFindTree() { KOF kof = new KOF(Arrays.asList("ABCD","BCDE","CDEF")); String koof = kof.koof("ABCD"); Assert.assertEquals("ABCDEF", koof); } public String koof(String str){ Listselect = new ArrayList (); for(String s : list){ System.out.println(str.substring(str.length()-3)); if(s.startsWith(str.substring(str.length()-3))){ select.add(s); } } for(String s : select){ return koof(str+s.substring(s.length()-1)); } return str; }
选择最长路线
@Test public final void testKoofFindNone() { KOF kof = new KOF(Arrays.asList("ABCD")); String koof = kof.koof("ABE"); Assert.assertEquals("ABE", koof); } @Test public final void testKoofFindOne() { KOF kof = new KOF(Arrays.asList("ABCD")); String koof = kof.koof("ABC"); Assert.assertEquals("ABCD", koof); } @Test public final void testKoofFindTwo() { KOF kof = new KOF(Arrays.asList("ABCD","BCDF")); String koof = kof.koof("ABCD"); Assert.assertEquals("ABCDF", koof); } @Test public final void testKoofFindThree() { KOF kof = new KOF(Arrays.asList("ABCD","BCDE","CDEF")); String koof = kof.koof("ABCD"); Assert.assertEquals("ABCDEF", koof); } @Test public final void testKoofFindTree() { KOF kof = new KOF(Arrays.asList("ABCD","BCDF","BCDE","CDEF")); String koof = kof.koof("ABCD"); Assert.assertEquals("ABCDEF", koof); } public String koof(String str){ Listselect = new ArrayList (); for(String s : list){ System.out.println(str.substring(str.length()-3)); if(s.startsWith(str.substring(str.length()-3))){ select.add(s); } } String max = str; for(String s : select){ String temp = koof(str+s.substring(s.length()-1)); if(max.length()
看一下是否大连招.
public String koof(String str){ Listselect = new ArrayList (); if(str.endsWith("EOF")){ return str; } for(String s : list){ if(s.startsWith(str.substring(str.length()-3))){ select.add(s); } } String max = str; for(String s : select){ String nextKey = str+s.substring(s.length()-1); if(str.indexOf(s.substring(1))>=0){ return str+"EOF"; } String temp = koof(nextKey); if(max.length()