隨筆 - 147  文章 - 71  trackbacks - 0
          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類(146)

          隨筆檔案(147)

          文章分類(28)

          文章檔案(28)

          喜歡的Blog

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          http://acm.fjnu.edu.cn/show?problem_id=3008
          在>或<情況下可能不存在完美字符串。
          import java.util.*;
          import java.io.*;

          public class ACM_3008{
              
              
          public static void sort1(String s,char[] c){
                  
          int i,j,k,n=c.length;
                  
          boolean find=true;
                  
          for(i=0;i<n-1 && find;i++){
                      
          char t=c[i];
                      k
          =i;
                      
          for(j=i+1;j<n;j++){
                          
          if(c[j]>t){
                              t
          =c[j];
                              k
          =j;
                          }

                          
          else if(c[j]==t){
                              find
          =false;
                              
          break;
                          }

                      }

                      
          if(k!=i)
                      
          {
                          
          char tmp=c[i];
                          c[i]
          =c[k];
                          c[k]
          =tmp;
                      }

                  }

                  
          if(find){
                      
          for(i=0;i<n;i++)
                          System.out.print(c[i]);
                      System.out.println();
                  }

                  
          else
                      System.out.println(s);
              }

              
              
          public static void sort2(String s,char[] c){
                  
          int i,j,k,n=c.length;
                  
          boolean find=true;
                  
          for(i=0;i<n-1 && find;i++){
                      
          char t=c[i];
                      k
          =i;
                      
          for(j=i+1;j<n;j++){
                          
          if(c[j]<t){
                              t
          =c[j];
                              k
          =j;
                          }

                          
          else if(c[j]==t){
                              find
          =false;
                              
          break;
                          }

                      }

                      
          if(k!=i)
                      
          {
                          
          char tmp=c[i];
                          c[i]
          =c[k];
                          c[k]
          =tmp;
                      }

                  }

                  
          if(find){
                      
          for(i=0;i<n;i++)
                          System.out.print(c[i]);
                      System.out.println();
                  }

                  
          else
                      System.out.println(s);
              }

              
              
          public static void sort3(char[] c){
                  
          int i,j,k,n=c.length;
                  
          for(i=0;i<n-1;i++){
                      
          char t=c[i];
                      k
          =i;
                      
          for(j=i+1;j<n;j++){
                          
          if(c[j]>=t){
                              t
          =c[j];
                              k
          =j;
                          }

                      }

                      
          if(k!=i)
                      
          {
                          
          char tmp=c[i];
                          c[i]
          =c[k];
                          c[k]
          =tmp;
                      }

                  }

                  
          for(i=0;i<n;i++)
                      System.out.print(c[i]);
                  System.out.println();
              }

              
              
          public static void sort4(char[] c){
                  
          int i,j,k,n=c.length;
                  
          for(i=0;i<n-1;i++){
                      
          char t=c[i];
                      k
          =i;
                      
          for(j=i+1;j<n;j++){
                          
          if(c[j]<=t){
                              t
          =c[j];
                              k
          =j;
                          }

                      }

                      
          if(k!=i)
                      
          {
                          
          char tmp=c[i];
                          c[i]
          =c[k];
                          c[k]
          =tmp;
                      }

                  }

                  
          for(i=0;i<n;i++)
                      System.out.print(c[i]);
                  System.out.println();
              }

              
              
          public static void main(String rgs[]) throws Exception
              
          {
                  BufferedReader stdin 
          = 
                      
          new BufferedReader(
                          
          new InputStreamReader(System.in));        
                  String line 
          = stdin.readLine();
                  String s 
          = line;
                  
          char[] c = s.toCharArray();
                  line 
          = stdin.readLine();
                  String t 
          = line;
                  
          if(t.equals(">"))
                      sort1(s,c);
                  
          else if(t.equals("<"))
                      sort2(s,c);
                  
          else if(t.equals(">="))
                      sort3(c);
                  
          else
                      sort4(c);
              }

          }
          posted on 2009-10-17 10:14 飛翔天使 閱讀(240) 評論(0)  編輯  收藏 所屬分類: ACM
          主站蜘蛛池模板: 宝应县| 松潘县| 桃源县| 德江县| 普格县| 莱芜市| 特克斯县| 汉川市| 安达市| 昌都县| 玉林市| 淮北市| 囊谦县| 即墨市| 芮城县| 梁平县| 余江县| 永寿县| 双城市| 黄石市| 连山| 左权县| 湘阴县| 玛沁县| 鄂托克前旗| 徐州市| 双桥区| 固原市| 同心县| 满城县| 望都县| 都昌县| 达州市| 阳西县| 施秉县| 湘乡市| 九江市| 左云县| 蓬安县| 安福县| 土默特右旗|