zoukankan      html  css  js  c++  java
  • Party Games UVA

    题目

     1 #include<iostream>
     2 #include<string>
     3 #include<algorithm>
     4 using namespace std;
     5 //生成字符串
     6 /*
     7 求出排序后位于中间的两个字符串较小的和较大的分别为s1,s2
     8 s[i]表示字符串s的第i位
     9 对于第1位,显然只需要考虑两个值:s1[1],s1[1]+1
    10 如果单独一位两种方式不能满足,则考虑2位的情况
    11 显然,如果需要考虑第2位,那么第1位应该取s1[1]
    12 对于第i位,如果s1[i]和s2[i]都存在,只要类比以上方法即可
    13 如果s1.length>s2.length
    14 试验可得用一般的方法即可
    15 如果s1.length<s2.length
    16 如果计算到s1.length位仍未得出结果,那么答案就是s1
    17 */
    18 //曾经出过的bug:忽略了s1[i]+1超出了字母范围(A到Z)的情况,此时应舍去
    19 string s[1000];
    20 string t1,t2,s1,s2;
    21 int n;
    22 int main()
    23 {
    24     int i;
    25     cin>>n;
    26     while(n!=0)
    27     {
    28         t1="";t2="";
    29         for(i=0;i<n;i++)
    30             cin>>s[i];
    31         sort(s,s+n);
    32         s1=s[(n/2)-1];
    33         s2=s[n/2];
    34         for(i=0;i<s1.length();i++)
    35         {
    36             t2=t1+s1[i];
    37             if(t2>=s1&&t2<s2)
    38             {
    39                 cout<<t2<<'
    ';
    40                 goto haha;
    41             }
    42             if(s1[i]+1<='Z')
    43             {
    44                 t2=t1+(char)(s1[i]+1);
    45                 if(t2>=s1&&t2<s2)
    46                 {
    47                     cout<<t2<<'
    ';
    48                     goto haha;
    49                 }
    50             }
    51             t1+=s1[i];
    52         }
    53         if(s1.length()<s2.length())
    54         {
    55             cout<<s1<<'
    ';
    56         }
    57         haha:
    58         cin>>n;
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    HashMap死循环造成CPU100%
    ArrayList升级为线程安全的List
    并发容器-ConncurrentHashMap
    并发容器-概览
    不可变性final
    CAS
    原子类-Adder累加器
    hue-使用mysql作为元数据库
    yhd日志分析(二)
    yhd日志分析(一)
  • 原文地址:https://www.cnblogs.com/hehe54321/p/7274760.html
Copyright © 2011-2022 走看看