zoukankan      html  css  js  c++  java
  • 第一届山东省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
  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/asd1234/p/3637618.html
Copyright © 2011-2022 走看看