栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

LeetCode 859 亲密字符串(sqort)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode 859 亲密字符串(sqort)


 知识点

 运用到了qsort进行排序,可参考:qsort函数使用方法总结(详细全面+代码)_嵌入式与Linux那些事的博客-CSDN博客_qsort函数代码

C语言代码实现
int cmp(const void* e1, const void* e2);
bool buddyStrings(char* s, char* goal) {
    int count;
    int i,a,b;
    count=0;
    a=0;
    b=0;
    int lens = strlen(s);
    int lengoal = strlen(goal);
    if (lens != lengoal || lens < 2) {
        return false;       //s小于2或长度不相等。
    }
    //字符相同
    if (strcmp(s, goal) == 0) {
        qsort(s, lens, sizeof(char), cmp);  //字符串排序
        for (i = 0; i < lens - 1; i++) {
            if (s[i] == s[i + 1]) {   //排序完有相同的就正确。
                return true;
            }
        }
        return false;
    }
    //字符不相同
    for (i = 0; i < lens; i++) {
        if (s[i] != goal[i]) {
            count++;  //不相同字符的个数
            if (count == 1) {
                a = i;
            }
            else {
                b = i;
            }
        }
        if (count > 2) {   //两个以上不相同直接为错
            return false;
        }
    }
    //s和goal中两个字符不相同但两个字符相等
    if (s[a] == goal[b] && s[b] == goal[a]) {
        return true;

    }
    return false;
}
int cmp(const void* e1, const void* e2) {
    return strcmp((char*)e1, (char*)e2);
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/628794.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号