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;
}
相关推荐
疯狂打码的少年1 小时前
【数据结构】栈:定义、顺序栈与链式栈
数据结构·笔记
wabs6661 小时前
关于图论【最短路径之Bellman_ford 算法|卡码网94.城市间货物运输的思考】
数据结构·算法·图论·卡码网·bellman_ford·求最短路径
今日无bug1 小时前
JS 数据类型 + 内存分配:从 8 种类型到栈堆模型
javascript·数据结构
wabs6662 小时前
关于哈希表【力扣454.四数相加II的思考】
数据结构·算法·leetcode·散列表
白狐_7982 小时前
408数据结构第7章:查找①——顺序查找、折半查找、分块查找知识总结
数据结构
ShineWinsu2 小时前
对于C++中unordered_map的详细介绍
数据结构·c++·算法·面试·stl·哈希表·unordered_map
lingran__3 小时前
C++ 高阶数据结构:AVL 树万字详解|原理、四种旋转、key‑value 实现、调试校验、set/map/红黑树 底层前置知识
数据结构·c++·二叉搜索树·平衡二叉树·avl树·红黑树前置
疯狂打码的少年4 小时前
【数据结构】顺序表 vs 链表的对比与选择
数据结构·笔记·链表
wabs66614 小时前
关于图论【最短路径之Dijkstra算法(堆优化版)|卡码网47.参加科学大会的思考】
数据结构·算法·图论·优先级队列·邻接表·小顶堆·卡码网
yyy(十一月限定版)18 小时前
016【入门】双端队列
数据结构·c++