[遇见时光]内推笔试-藏宝图-java实现
牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t,根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列。注意,子序列不要求在原字符串中是连续的,例如串 abc,它的子序列就有 {空串, a, b, c, ab, ac, bc, abc} 8 种。
输入描述:
每个输入包含一个测试用例。每个测试用例包含两行长度不超过 10 的不包含空格的可见 ASCII 字符串。
输出描述:
输出一行 “Yes” 或者 “No” 表示结果。
输入例子:
x.nowcoder.com ooo
输出例子:
Yes
下面java代码在牛客网上AC通过,我也因此拿到了网易面试通知;然而不复习的人不可能过面试!!!
1 import java.util.Scanner; 2 public class Main { 3 public static String isSubString(String S,String T ){ 4 String SS=S; 5 String TT=T; 6 if (S.length()<T.length()||T.length()<0||T.equals(null)||S.length()>10||T.length()>10) { 7 return "No"; 8 } 9 10 int i=0; 11 for(;i<TT.length();i++){ 12 char c= TT.charAt(i); 13 int l = SS.indexOf(String.valueOf(c)); 14 // System.out.println(l); 15 if (l>=0&&l<S.length()) { 16 SS = SS.substring(l+1); 17 }else{ 18 return "No"; 19 } 20 } 21 if (i ==T.length()&&SS.length()>=0) { 22 return "Yes"; 23 }else { 24 return "No"; 25 } 26 } 27 28 public static void main(String[] args) { 29 // TODO Auto-generated method stub 30 Scanner in = new Scanner(System.in); 31 String Str = in.nextLine(); 32 String t = in.nextLine(); 33 System.out.println(isSubString(Str, t)); 34 // System.out.println(isSubString("jkk", "")); 35 // System.out.println(isSubString("", "o")); 36 // System.out.println(isSubString("sb", "s")); 37 // System.out.println(isSubString("sb", "bb")); 38 // System.out.println(isSubString("xxxsbbbbbb", "ssb")); 39 // System.out.println(isSubString("xxxsbbbbbb", "xb")); 40 // System.out.println(isSubString("xxxmmmsbb0", "xmb0")); 41 // System.out.println(isSubString("xxx", "xxxx")); 42 } 43 44 }