• 2785. 将字符串中的元音字母排序


    2785. 将字符串中的元音字母排序

    给你一个下标从 0 开始的字符串 s ,将 s 中的元素重新 排列 得到新的字符串 t ,它满足:

    所有辅音字母都在原来的位置上。更正式的,如果满足 0 <= i < s.length 的下标 i 处的 s[i] 是个辅音字母,那么 t[i] = s[i] 。
    元音字母都必须以他们的 ASCII 值按 非递减 顺序排列。更正式的,对于满足 0 <= i < j < s.length 的下标 i 和 j  ,如果 s[i] 和 s[j] 都是元音字母,那么 t[i] 的 ASCII 值不能大于 t[j] 的 ASCII 值。
    
    • 1
    • 2

    请你返回结果字母串。

    元音字母为 ‘a’ ,‘e’ ,‘i’ ,‘o’ 和 ‘u’ ,它们可能是小写字母也可能是大写字母,辅音字母是除了这 5 个字母以外的所有字母。

    示例 1:

    输入:s = “lEetcOde”
    输出:“lEOtcede”
    解释:‘E’ ,‘O’ 和 ‘e’ 是 s 中的元音字母,‘l’ ,‘t’ ,‘c’ 和 ‘d’ 是所有的辅音。将元音字母按照 ASCII 值排序,辅音字母留在原地。

    示例 2:

    输入:s = “lYmpH”
    输出:“lYmpH”
    解释:s 中没有元音字母(s 中都为辅音字母),所以我们返回 “lYmpH” 。

    解题代码如下:

    int cmp(const void* a, const void* b) {
    
        return *(char*)a - *(char*)b;
    
    }
    
    char * sortVowels(char * s){
        char st[10]="aeiouAEIOU";
        int len=strlen(s);
        char t[len];
        int size=0;
        for(int i=0;s[i]!='\0';i++){
    
            for(int j=0;j<10;j++){
                if(s[i]==st[j]){
                    t[size++]=s[i];
                    break;
                }
    
            }
    
        }
            qsort(t, size, sizeof(char), cmp);    //排序原数组
    
             for(int i=0;i<size;i++){
                    printf("%c ",t[i]);
             }
    
    int p=0;
          for(int i=0;s[i]!='\0';i++){
    
            for(int j=0;j<10;j++){
                if(s[i]==st[j]){
                   s[i]=t[p++];
                   break;
                }
    
            }
            
    
        }
          
    return s;
    
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
  • 相关阅读:
    为什么资源管理对现代企业很重要?
    【Axure视频教程】可拖动的知识图谱
    雷军造车1年+,手机“打法”真的适合小米汽车吗?
    2023深耕kotlin,谈谈前景
    TL-ER3220G端口映射设置
    贪心算法--概论
    phpcmsV9.6.0sql注入漏洞分析
    「创作之秋」关于线程池,你需要了解这些
    Docker创建FTP服务器
    HTX 与 Zebec Protocol 展开深度合作,并将以质押者的身份参与 ZBC Staking
  • 原文地址:https://blog.csdn.net/weixin_43327597/article/details/133363688