题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

#include<stdio.h>
#include<string.h>

//分别统计小写个数、大写个数
//在原数组中按字母表顺序寻找每个字母*(大小写)并写入新数组。
//寻找时利用个数作为条件可以节省时间。
//与原数组进行比较,分别输出新数组中重新排序后的字母和原数组原位置中的非字母。
//scanf遇到空格会停止,所以用结尾标志位'\n'来循环输入。


char input[1000],in,temp[1000],new[1000];
int alpha[26],beta[26];
int i=0,j=0,k=0,len,flag[26];

int main()
{
  
        while(1)//输入数据
    {
        if(in != '\n')
        {
           scanf("%c",&in);
           input[i] = in; 
           i++;
        }
        else
            break;        
    }

    len=i;//获取数组长度
      
   
      for(i=0;i<len;i++)//记录出现次数
      {
        if((input[i]>='A')&&(input[i]<='Z'))  //大写
        {
            alpha[input[i]-'A']++;
            
        }
          else if((input[i]>='a')&&(input[i]<='z'))//小写
          
          {
              beta[input[i]-'a']++;
        
          }
        
      } 
 
    
    
    for(i=0;i<26;i++)//取每一个字母
    {
           
     if(alpha[i]+beta[i]>0)//判断该字母在序列中是否存在
     {
         for(j=0;j<len;j++)//导入序列
         {
            
             if((input[j]==i+'A')||(input[j]==i+'a'))//按顺序寻找字母,一次只找一个字母的大小写
             {               
                 temp[k]=input[j];//将寻找到的字母放入新数组
                 k++;
             }
         
         }
         
         
     }
        
        
        
    }
    
    j=0;
    for(i=0;i<len;i++)//将所有数据写入数组
    {
        if(((input[i]>='A')&&(input[i]<='Z'))||((input[i]>='a')&&(input[i]<='z')))//字母项
        {
           new[i]=temp[j];//将排好顺序的字母写入按原格式填入输出数组的空字母位。
            j++;
           
        }
        else//非字母项,按原数组各位置填入输出数组。
        {
            
            new[i]=input[i];
            
            
        }   
        
        
        
    }
    
    for(i=0;i<len;i++)//输出
    {
        
       printf("%c", new[i]);
        
    }
    
    
    
    
}
全部评论
半夜三点发布!!哥哥太牛了
1 回复 分享
发布于 2022-04-06 16:31

相关推荐

点赞 评论 收藏
分享
hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
1 2 评论
分享
牛客网
牛客企业服务