zoukankan      html  css  js  c++  java
  • topcoder

      1 #include <algorithm> 
      2 #include <cassert> 
      3 #include <cctype> 
      4 #include <cmath> 
      5 #include <complex> 
      6 #include <cstdio> 
      7 #include <cstdlib> 
      8 #include <cstring> 
      9 #include <ctime> 
     10 #include <deque> 
     11 #include <functional> 
     12 #include <iterator> 
     13 #include <iostream> 
     14 #include <list> 
     15 #include <map> 
     16 #include <numeric> 
     17 #include <queue> 
     18 #include <set> 
     19 #include <string> 
     20 #include <valarray> 
     21 #include <vector> 
     22 #include <iomanip>
     23 using namespace std;
     24 
     25 typedef long long ll; 
     26 typedef vector<int> vi; // vi(长度,值)
     27 typedef vector<string> vs ; 
     28 typedef vector<double> vd ; 
     29 typedef istringstream ISS;
     30 typedef ostringstream OSS;
     31 
     32 #define all(a) (a).begin(),(a).end() 
     33 #define mset(a,v) memset(a,v,sizeof(a)) 
     34 #define pb push_back   //a.pb( ) 
     35 #define min(a,b) ((a)<(b)?(a):(b)) 
     36 #define max(a,b) ((a)>(b)?(a):(b)) 
     37 #define sz size()
     38 #define rep(i,n) for(int i=0;i<(n);i++)
     39 #define swap(a,b) a^=b^=a^=b;
     40 
     41 
     42 
     43 class SwappingDigits
     44 {
     45 public:
     46     int minnum0(string num)
     47     {
     48         int i,min0=0;
     49         int len=num.length();
     50         for (i=len-1;i>0;i--)
     51         {
     52             if((num[i] < num[min0])&&(num[i] != '0'))
     53                 min0 = i;
     54         }
     55         return min0;
     56     }
     57     int minnump(string num,int j)
     58     {
     59         int i,minp=j;
     60         int len=num.length();
     61         for (i=len;i>j;i--)
     62         {
     63             if((num[i] < num[minp]))
     64                 minp = i;
     65         }
     66         return minp;
     67     }
     68     string minNumber(string num)
     69     {
     70         int i,j,mid;
     71         int len=num.length();
     72         mid = len/2;
     73 
     74         i = minnum0(num);
     75         if(i)
     76         {
     77             swap(num[i],num[0]);
     78             return num;
     79         }
     80 
     81         for(j=1;j<mid;j++)
     82         {
     83             i=minnump(num,j);
     84             if(i != j)
     85             {
     86                 swap(num[i],num[j]);
     87                 return num;
     88             }
     89         }
     90         
     91         return num;
     92     }
     93 };
     94 int main()
     95 {
     96     SwappingDigits sol;
     97     string s;
     98     while(true)
     99     {
    100         cin>>s;
    101         cout<<sol.minNumber(s)<<endl;
    102     }
    103 }
  • 相关阅读:
    弹框DialogBuilder的使用
    分页刷新(SwipeRefreshLayout+SwipeMenuRecyclerView)
    Android Studio各种bug
    分页加载PullToRefreshLayout+PullableListView
    20+个很棒的Android开源项目
    ANDROID中使用开源框架CITYPICKERVIEW实现省市区三级联动选择
    Android 一个改善的okHttp封装库
    Android之万能播放器解码框架Vitamio的介绍及使用
    Android微信支付SDK开发
    CMD 查看端口号 根据PID 关闭进程
  • 原文地址:https://www.cnblogs.com/chunlifang-luck/p/3182668.html
Copyright © 2011-2022 走看看