字符串排序 codeforce53A

//简单描述对字符串的排序

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
string str;//字符串和字符串数组
string a[1000];
int main()
{
  int n,j;
  scanf("%d",&n);
  j=0;
  for(int i=0;i<n;i++)
  {
    cin>>str;
    a[++j]=str;
  }
  sort(a+1,a+j+1);//begin---end+1
  for(int i=1;i<=j;i++)
  cout<<a[i]<<endl;
}

//codeforce 53A题意:输入一个字符串s,输入n,n个字符串如果n个字符串中有以s为前缀的字符串,输出字典序最小的字符串

//如果没有以s为前缀的字符串则输出s

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
string a[105],s,stmp;
int main()
{
  int n;
  cin>>s; cin>>n;
  int len=s.size(),id=0;
  for(int i=0;i<n;i++)
  {
    cin>>stmp;
    if(stmp.substr(0,len)==s)//substr函数返回截取的字符串
    {
      //获得字符串s中从第0位开始长度为len的字符串
      //默认时长度为从开始到尾
      a[++id]=stmp;
    }
  }
  sort(a+1,a+id+1);
  if(!id)
    cout<<s<<endl;
  else
    cout<<a[1]<<endl;
  return 0;
}

原文地址:https://www.cnblogs.com/renwjing/p/7356138.html