标签:i++ clipboard hone stat length copy 自己 can 校内网
输入有多组数据。
每组数据第一行是一个整数n,(1≤n≤10000)。
紧接着有n行电话号码,号码只有数字组成,长度不超过11位。
对应每组输入,有一行输出:如果电话簿中存在冲突的号码,就输出“Yes”;否则输出“No”。
Yes
No
1 package com.yzh.xuexi; 2 3 import java.util.Arrays; 4 import java.util.Scanner; 5 6 public class ConflictPhoneNumber { 7 8 public static void main(String[] args) { 9 Scanner scanner =new Scanner(System.in); 10 while(scanner.hasNext()){ 11 int n=Integer.valueOf(scanner.nextLine()); 12 String[] arr=new String[n]; 13 for (int i = 0; i < arr.length; i++) { 14 arr[i]=scanner.nextLine(); 15 } 16 System.out.println(conflictPhoneNumber(arr)); 17 } 18 scanner.close(); 19 20 } 21 22 //也可用字典树解决 23 private static String conflictPhoneNumber(String[] arr) { 24 Arrays.sort(arr);//利用Arrays内置sort()函数对字符串按默认规则从小到大排序(也可以自己实现快排、希尔排序、归并排序和堆排序等n㏒n复杂度排序方法降低整个算法的复杂度) 25 //字符串从小到大排序后,只有相邻的两个字符串可能存在第二个字符串以第一个字符串开头的关系 26 for(int i=1;i<arr.length ;i++){ 27 if (arr[i].indexOf(arr[i-1])==0) { 28 return "YES"; 29 } 30 } 31 return "NO"; 32 } 33 34 }
解题(ConflictPhoneNumber--冲突的电话号码)
标签:i++ clipboard hone stat length copy 自己 can 校内网
原文地址:https://www.cnblogs.com/hzy1234/p/9484595.html