月神拿到一个新的数据集,其中每个样本都是一个字符串,样本的的后六位是纯数字,月神需要将所有样本的后六位数字提出来,转换成数字,并排序输出。 
   注意:这里的排序并不是针对每个字符串的后六位,而是需要按数字大小顺序输出所有样本的后六位数字。 
   月神要实现这样一个很简单的功能确没有时间,作为好朋友的你,一定能解决月神的烦恼,对吧。
 
   数据范围:字符串长度满足  ,每组测试中包含
 ,每组测试中包含  个字符串
 个字符串
 
                                        每个测试用例的第一行是一个正整数 M ,表示数据集的样本数目
接下来输入 M 行,每行是数据集的一个样本,每个样本均是字符串,且后六位是数字字符。
对每个数据集,输出所有样本的后六位构成的数字排序后的结果(每行输出一个样本的结果)
4 abc123455 cba312456 boyxx213456 cdwxa654321
123455 213456 312456 654321
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int m;
    string s[101];
    while(cin>>m)
    {
        int num[m];
        for(int i=0;i<m;i++)
        {
            cin>>s[i];
            string str = s[i].substr(s[i].size() - 6, s[i].size() - 1);
            num[i]=stoi(str);
        }
        sort(num,num+m);
        for(int i=0;i<m;i++)
            cout<<num[i]<<endl;
    }
    return 0;
}
 #include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#define not !
// function declaration
int str_len(const char* s);
char* sub_str(const char* s, const int start, const int len);
void printNumbers(int* numbers, int numbersSize);
// generic bubble sort algorithm
void bubble_sort(void* __base, const size_t __nmemb, const size_t __size, int (*__comp) (const void*, const void*));
void swap(void* __a, void* __b, const size_t __size);
int compare_int(const void* a, const void* b) {
  return *(int*) a - *(int*) b;
}
int main(const int argc, const char** argv) {
  int m;
  fscanf(stdin, "%d", &m);
  
  int nums[m], numsSize = 0;
  char input[100];
  while (m--) {
    scanf("%s", input);
    *(nums + numsSize++) = atoi(sub_str(input, str_len(input) - 6, 9999));
  }
  
  bubble_sort(nums, numsSize, sizeof(int), compare_int);
  printNumbers(nums, numsSize);
  return 0;
}
int str_len(const char* s) {
  assert(s != NULL);
  if (!*s) return 0;
  
  const char* p = s;
  while (*++p);
  return p - s;
}
// 非常的完美 
char* sub_str(const char* s, const int start, const int len) {
  
  assert(s != NULL);
  const int l = str_len(s);
  if (start < 0 || start >= l) return s;
  
  // 每一个字节都要考虑到!
  char* ss = (char*) malloc((l - start + 1) * sizeof(char)); // ss == sub string
  if (!ss) return s;
  
  char *p = s + start, *q = ss;
  int i = 0; // len 的长度有可能远远大于str start后的实际长度。函式要有一定的容错性!
  while (*p && i++ < len) *q++ = *p++;
  *q = '\0';
  return ss;
}
void printNumbers(int* numbers, int numbersSize) {
  int i;
  for (i = 0; i < numbersSize; ++i)
    fprintf(stdout, "%d\n", *(numbers + i));
}
// 优化版的冒泡排序
void bubble_sort(void* __base, const size_t __nmemb, const size_t __size, int (*__comp) (const void*, const void*))
{
  int t, i, exchange;
  for (t = 0; t < __nmemb - 1; ++t) {
    exchange = 0;
    for (i = 0; i < __nmemb - 1 - t; ++i) {
      if ( __comp((char*) __base + (i * __size), (char*) __base + ((i + 1) * __size)) > 0) {
        swap((char*) __base + (i * __size), (char*) __base + ((i + 1) * __size), __size);
        exchange = 1;
      }
    }
    if (not exchange) break;
  }
}
void swap(void* __a, void* __b, const size_t __size) {
  int i;
  for (i = 0; i < __size; ++i) {
    *((char*) __a + i) ^= *((char*) __b + i);
    *((char*) __b + i) ^= *((char*) __a + i);
    *((char*) __a + i) ^= *((char*) __b + i);
  }
} import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Arrays;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String strN;
        while((strN = br.readLine()) != null){
            int n = Integer.parseInt(strN);
            String[] arr = new String[n];
            String content;
            for(int i = 0; i < n; i++){
                content = br.readLine().trim();
                arr[i] = content.substring(content.length() - 6);
            }
            // 直接进行字符串排序
            Arrays.sort(arr);
            for(int i = 0; i < n; i++)
                System.out.println(arr[i]);
        }
    }
} #include<bits/stdc++.h>
using namespace std;
int main(){
    int m;
    while(cin>>m){
        char** ch=new char*[m];
        int *rec=new int[m];
        for(int i=0;i<m;i++){
            ch[i]=new char[100];
            cin>>ch[i];
            int len=strlen(ch[i]),total=0;
            for(int j=len-6;j<len;j++)
                total+=pow(10,len-1-j)*(ch[i][j]-'0');
            rec[i]=total;
        }
        sort(rec,rec+m);
        for(int i=0;i<m;i++)
            cout<<rec[i]<<endl;
    }
    return 0;
} #include <string>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    int m;
    cin >> m;
    vector<string> v;
    while(m--)
    {
        string str;
        cin >> str;
        string temp = "";
        temp = str.substr(str.size()-6);
        v.push_back(temp);
    }
    sort(v.begin(),v.end());
    for(int i =0;i<v.size();i++)
        cout << v[i] << endl;
    return 0;
} #include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    set<int,less<int>> min;
    vector<string> vstr;
    cin>>n;
    vstr.resize(n);
    for(int i=0;i<n;i++){
        cin>>vstr[i];
        min.insert(stoi(vstr[i].substr(vstr[i].size()-6,6)));
    }
    for(int i:min)
        cout<<i<<endl;
    return 0;
}
 #include<bits/stdc++.h>
using namespace std;
int main(void) {
	string a[101];
	int m = 0;
	cin >> m;
	for (int i = 0; i < m; i++) {
		cin >> a[i];
	}
	multiset<string> mset;
	for (int i = 0; i < m; i++) {
		mset.insert(a[i].substr(a[i].length() - 6));
	}
	multiset<string>::iterator iter;
	for (iter = mset.begin(); iter != mset.end(); iter++) {
		cout << *iter << endl;
	}
	return 0;
}
                                                                                    import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
    /**
     * 每次把后6位数字切出来丢进数组,之后排序
     */
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(bf.readLine());
        int[] ans = new int[n];
        for (int i = 0; i < n; i++) {
            String s = bf.readLine();
            ans[i] = Integer.parseInt(s.substring(s.length()-6,s.length()));
        }
        Arrays.sort(ans);
        for (int i = 0; i < ans.length; i++) {
            System.out.println(ans[i]);
        }
    }
}
                                                                                    /*
取子串。
利用Integer的parseInt方法转化成整型。
排序。
*/
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int M = in.nextInt();
        int[] arr = new int[M];
        for (int i = 0; i < M; i++) {
            String s = in.next();
            int len = s.length();
            String lasts = s.substring(len - 6, len);
            arr[i] = Integer.parseInt(lasts);
        }
        Arrays.sort(arr);
        for (int i : arr) {
            System.out.println(i);
        }
    }
}
 #include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    string s;
    int n;
    cin >> n;
    vector<int> v(n, 0);
    while(n--){
        cin >> s;
        for(int i = s.length() - 6; i < s.length(); i++){
            v[n] *= 10;
            v[n] += s[i] - '0';
        }
    }
    sort(v.begin(), v.end());
    for(int i : v)
        cout << i << endl;
    return 0;
}