【C语言蓝桥杯每日一题】——排列字母

简介: 哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言蓝桥杯每日一题】——排列字母~ 都是精华内容,可不要错过哟!!!😍😍😍

微信图片_20230427214238.gif

😎博客昵称:博客小梦

😊最喜欢的座右铭:全神贯注的上吧!!!

😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘

微信图片_20230427160707.gif


前言🙌


   哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言蓝桥杯每日一题】——排列字母~ 都是精华内容,可不要错过哟!!!😍😍😍


排列字母🙌


问题描述


小蓝要把一个字符串中的字母按其在字母表中的顺序排列。

例如,LANQIAO 排列后为 AAILNOQ。

又如,GOODGOODSTUDYDAYDAYUP 排列后为 AADDDDDGGOOOOPSTUUYYY。

请问对于以下字符串,排列之后字符串是什么?

WHERETHEREISAWILLTHEREISAWAY

解题思路分析:😍


  • 1.首先先认真审题,在选择最合适的解法。
  • 2.这道题的解法有很多,这里使用的是C语言qsort库函数。先将这个字符串进行排序,然后再打印输出。
  • 3.当然这里还有更加暴力的解法。就是将这个字符串自己数一下,然后直接输出答案。


C语言中的qsort库函数


首先先来认识一下C语言中的qsort函数,它内部是基于快排算法设计的。

它的大概样子如下图所示:

微信图片_20230428192153.png


qsort函数的返回值设计如下图所示:

微信图片_20230428192156.png

由于我上一篇的蓝桥杯题解——等差数列。已经对这个函数进行了详细的了解,因此这里就不过多的赘述啦~


解题源代码分享:😍


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int compare(const void* e1, const void* e2)
{
  return *((char*)e1) - *((char*)e2);
}
int main()
{
  char arr[50] = "WHERETHEREISAWILLTHEREISAWAY";
  qsort(arr, strlen(arr), sizeof(char), compare);
  printf("%s", arr);
  return 0;
}


当然还有更加暴力的算法~


直接数出字母的顺序,然后直接打印即可!!!


解题源代码分享:😍


#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
  // 请在此输入您的代码
  printf("AAAEEEEEEHHHIIILLRRRSSTTWWWY");
  return 0;
}


程序输出结果验证: 😊


微信图片_20230428192011.png


总结撒花💞


   本篇文章旨在分享【C语言蓝桥杯每日一题】——排列字母。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

相关文章
|
3天前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-682 求先序排列
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-682 求先序排列
29 0
|
7月前
|
C语言
C 语言实例 - 判断字母
用户输入一个字符,判断该字符是否为一个字母。
40 1
|
3天前
|
C语言
每天一道C语言编程(数字转字母,字母转数字)
每天一道C语言编程(数字转字母,字母转数字)
5 0
|
3天前
|
C语言
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
|
3天前
|
编译器 C语言
【C语言】字母转换大小写的三种方法
【C语言】字母转换大小写的三种方法
57 0
|
3天前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-627 排列
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-627 排列
28 0
|
3天前
|
Python
第十三届蓝桥杯B组python(试题A:排列字母)
第十三届蓝桥杯B组python(试题A:排列字母)
28 0
|
3天前
|
存储 算法 C语言
C语言练习记录(蓝桥杯练习)(小蓝数点)
C语言练习记录(蓝桥杯练习)(小蓝数点)
|
7月前
|
人工智能 算法 测试技术
[蓝桥杯] 枚举、模拟和排列问题
[蓝桥杯] 枚举、模拟和排列问题
61 0
|
10月前
|
C语言
C语言:输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。
描述 输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。 输入描述: 输入包含三行, 第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。 第二行包含n个整数,用空格分隔。 第三行包含m个整数,用空格分隔。
193 0
C语言:输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。