• 第一届山东省ACM——Phone Number(java)


    Description

    We know that if a phone number A is another phone number B’s prefix, B is not able to be called. For an example, A is 123 while B is 12345, after pressing 123, we call A, and not able to call B.

    Given N phone numbers, your task is to find whether there exits two numbers A and B that A is B’s prefix.

    Input

    The input consists of several test cases.

    The first line of input in each test case contains one integer N (0<N<1001), represent the number of phone numbers.

    The next line contains N integers, describing the phone numbers.

    The last case is followed by a line containing one zero.

    Output

    For each test case, if there exits a phone number that cannot be called, print “NO”, otherwise print “YES” instead.

    Sample Input

    2 012 012345 2 12 012345 0

    Sample Output

    NO YES

    HINT

     

    Source

    山东第一届省赛

    题目链接:http://acm.upc.edu.cn/problem.php?id=1928



    字符串匹配(intdexOf(String str)),O(n2)

    代码:

    import java.util.Scanner;
    public class Main{
        public static String s[];
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int len[];
            while(sc.hasNextInt()){
                int n=sc.nextInt();
                if(n<=0)
                    break;
                s=new String[n];
                len=new int[n];
                for(int i=0;i<n;i++){
                    s[i]=sc.next();
                    len[i]=s[i].length();
                }
                for(int i=0;i<n-1;i++){
                    int k=len[i];
                    int temp=i;int d=0;
                    String ss;
                    for(int j=i+1;j<n;j++){
                        if(k>len[j]){
                            k=len[j];
                            temp=j;
                        }
                    }
                    if(temp>i){
                        d=len[i];len[i]=len[temp];len[temp]=d;
                        ss=s[i];s[i]=s[temp];s[temp]=ss;
                    }
                }
                int ddd=0;
                for(int i=0;i<n-1;i++){
                    for(int j=i+1;j<n;j++){
                        int dd=s[j].indexOf(s[i]);
                        if(dd==0){
                            System.out.println("NO");
                            ddd=1;
                            break;
                        }
                    }
                    if(ddd==1)
                        break;
                }
                if(ddd==0)
                    System.out.println("YES");
            }
        }
    }
    View Code
  • 相关阅读:
    mysql同步之otter/canal环境搭建完整详细版
    Linux安装aria2
    mysql多源复制(多主一从)配置
    分布式调度框架TBSchedule使用方法
    hbase shell插入根据条件查询数据
    hive内部表&外部表介绍
    Canal( 增量数据订阅与消费 )的理解及应用
    tidb入门
    ES命令
    java8新特性
  • 原文地址:https://www.cnblogs.com/asd1234/p/3637618.html
Copyright © 2020-2023  润新知