题目描述
时间限制: 1000MS
内存限制: 65536KB题目描述:
Jack正在查询他昨天打的AtForces在线比赛的rank,他发现当两位选手排名相同的时候,id字典序小的会排在前面,他有个想法,往id里插入一个字母c,能使得他的id能够尽量往前排。
输入描述
第一行一个字符串id,表示他的用户名(1≤id长度≤1000),保证只由小写字母组成。
第二行一个字符c,表示被添加进去的字符,保证为一个小写字母。
输出描述
共一行,修改后的字典序最小的字符串。
示例
样例输入
jackisnumberone k样例输出
jackiksnumberone
思路
等价于“在大于他字符前掺入”
实现:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void makeSmallest(char str[], int size, char key)
{
    int index = size;
    for (int i = 0; i < size; i++)
    {
        if (key < str[i]) {
            index = i;
            break;
        }
            
    }
    for (int i = size; i > index; i -- )
        str[i] = str[i - 1];
    str[index] = key;
    return ;
}
int main()
{
    int size = 0;
    char username[1002], key[2];
    memset(key, '\0', sizeof(key));
    memset(username, '\0', sizeof(username));
    scanf("%s", username);
    scanf("%s", key);
    size = strlen(username);
    makeSmallest(username, size, key[0]);
    printf("%s", username);
    return 0;
}
----------------------------------------------------------------------------------------
通过率100%
作为新时代农民工,无论是什么时候都不应该放弃基础能力的锻炼!
                  
                  
                  
                  
                            
该博客介绍了如何在已有的字符串中找到合适的位置插入一个特定字符,以使新字符串在字典序上尽可能小。通过给出的C语言代码示例,展示了如何实现这一操作,用于解决类似在线比赛排名问题。
          
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
                    
              
            
                  
					2846
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
					
					
					


            