diff --git a/yitou/B050_VTicket.java b/yitou/B050_VTicket.java new file mode 100644 index 0000000000000000000000000000000000000000..7d3f77c28a322f85c90550a63e02e143d6888532 --- /dev/null +++ b/yitou/B050_VTicket.java @@ -0,0 +1,48 @@ +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +/** + * チケットは指定されたキーに対して有効性がチェックされます. + * チケットはキーを部分文字列として含む場合、もしくは文字列から一文字削除することでキーを含む場合に有効とみなされます. + */ + +public class B050_VTicket{ + public static void main(final String[] args) { + final Scanner scan = new Scanner(System.in); + final int ticketNum = scan.nextInt(); + final String key = scan.next(); + final List results = new ArrayList<>(); + + for (int i = 0; i < ticketNum; i++) { + final String ticket = scan.next(); + if (isValidTicket(key, ticket)) { + results.add("valid"); + } else { + results.add("invalid"); + } + } + scan.close(); + + for (String result : results) { + System.out.println(result); + } + } + + private static boolean isValidTicket(final String key, final String ticket) { + if (ticket.contains(key)) { + return true; + } + // 余計な1文字を削除 + for (int i = 0; i < ticket.length(); i++) { + final StringBuilder sb = new StringBuilder(ticket); + sb.deleteCharAt(i); // i番目の文字を削除 + + if (sb.toString().contains(key)) { + return true; + } + } + + return false; + } +}