当前位置: 首页 > news >正文

C语言日记 2024年10月30日

目录

总结:

头文件:

函数:

内容:


总结:

头文件:

前三个函数来自于<string.h>

malloc来自于<stdlib.h>

函数:

strcmp(s1,s2);

用来比较字符串,s1大于s2时返回大于0的数。(同理,相同的话就等于0,小于的话就小于0。)

strlen(s1);

用来获得字符串的长度。

strcpy(s1,s2);

将字符串s2的内容复制给s1。

s1=(char*)malloc(n);

用来给s1这个字符串n位内存空间。

内容:

今天看见了一道题,题目如下。

3216. 交换后字典序最小的字符串
简单
给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性 的数字后,返回可以得到的
字典序最小的字符串
。如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5 和 9、2 和 4 奇偶性相同,而 6 和 9 奇偶性不同。示例 1:输入: s = "45320"输出: "43520"解释:s[1] == '5' 和 s[2] == '3' 都具有相同的奇偶性,交换它们可以得到字典序最小的字符串。示例 2:输入: s = "001"输出: "001"解释:无需进行交换,因为 s 已经是字典序最小的。

其中“字典序”我不知道是啥。

我认为字典序就是你查字典的时候,不同字在字典里的排序。例如用拼音查字法里的pa的字典序就比pi要靠前(也就是小。)。

接下来说说我的解题思路。

我的思路是穷举,通过获得全部的结果,然后比大小,将最小的结果返回回去就可以了。

这里用到的关键函数是strcmp,它用来进行比较字符串大小的操作。

我的答案如下。

char* getSmallestString(char* s) {int len=strlen(s);//获取字符串长度if(len<2){return s;}int i=0;char* r1;r1 = (char *)malloc(sizeof(char)*(len+1));strcpy(r1,s);char* r2;r2 = (char *)malloc(sizeof(char)*(len+1));for(i=0;(i+1)<=(len-1);i++){int num1 = s[i]-'0';int num2 = s[i+1]-'0';char temp;if ((num1%2==num2%2)){strcpy(r2,s);r2[i+1]=s[i];r2[i]=s[i+1];if(strcmp(r2,r1)<0){strcpy(r1,r2);}}}return r1;
}


http://www.mrgr.cn/news/62659.html

相关文章:

  • 书生-第四期闯关:完成SSH连接与端口映射并运行hello_world.py
  • uniapp写移动端,适配苹果手机底部导航栏,ios安全区问题,苹果手机遮挡底部信息,uview的u-action-sheet组件
  • Pycharm,2024最新版Pycharm现在安装环境配置汉化详细教程!
  • Java MySQL-JDBC编程
  • Unity(四十八):Unity与Web双向交互
  • 等概率器的求解
  • GenAI对就业市场的影响:哪些行业将受益?
  • 状态模式:封装对象状态并改变行为的设计模式
  • PySpark任务提交
  • Qt 坐标系统与坐标变换
  • 预处理详解(一)
  • 爬虫利器playwright
  • 独立站商业模式 :反向代购逆向海淘网站15个盈利点分析
  • Langchain调用模型使用FAISS
  • leetcode hot100(2)
  • Irqbalance处理中断迁移过程
  • [c++高阶]二叉搜索树深度剖析
  • 如何进行商标注册?
  • Vivo开奖了,劝退价。。
  • 【Nextcloud】在 Ubuntu 22.04.3 LTS 上的 Nextcloud Hub 8 (29.0.0) 优化
  • 你的Mac book多久没有清洁键盘屏幕了,Mac清洁好帮手来了
  • 学习算力网络必会关键词
  • 哈希表应用(位图和布隆过滤器)
  • HTB-Cicada 靶机笔记
  • ETL处理全流程
  • Linux 命令解释器-shell