题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723

int compare(char *s1,char *s2)
{
    int len=strlen(s1)>strlen(s2)?strlen(s2):strlen(s1);
    for(int i=0;i<len;i++)
    {
        if(s1[i]>s2[i]) return 1;
        else if(s1[i]<s2[i]) return -1;
    }
    if(strlen(s1)==strlen(s2)) return 0;
    else if(strlen(s1)>strlen(s2)) return 1;
    return -1;
}
void var(char *s1,char *s2)
{
    char c;
    int len=strlen(s1)>strlen(s2)?strlen(s1):strlen(s2);
    for(int i=0;i<len;i++)
    {
        c=s1[i];
        s1[i]=s2[i];
        s2[i]=c;
    }
}
int main(){
    char a[1024][100];
    int n;
    scanf("%d\n",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%s",a[i]);
    }
    for(int i=0;i<n;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            if(compare(a[i],a[j])>0)
            {
                var(a[i],a[j]);
            }
        }
    }
    for(int i=0;i<n;i++)
    {
        printf("%s\n",a[i]);
    }
    return 0;
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务