C语言面试题之判定字符是否唯一

判定字符是否唯一

实例要求

  • 实现一个算法,确定一个字符串 s 的所有字符是否全都不同

实例分析

  • 1、使用一个大小为 256 的bool数组 charSet 来记录字符是否出现过;
  • 2、遍历字符串时,如果字符已经在数组中标记过,则返回 false;
  • 3、否则标记该字符为已出现;
  • 4、最终返回 true 表示字符串中的所有字符都不同;

示例代码

c 复制代码
bool isUnique(char* astr){
    if (astr == NULL) {
        return true; // 空字符串视为所有字符都不同
    }

    bool charSet[256] = {false}; // 假设字符集为 ASCII

    while (*astr != '\0') {
        int val = (int)(*astr);
        if (charSet[val]) {
            return false; // 如果字符已经出现过,则返回 false
        }
        charSet[val] = true; // 标记字符已经出现过
        astr++;
    }

    return true; // 遍历完字符串,所有字符都不同
}

运行结果


  • ASCII码表
相关推荐
ai小陈8 分钟前
Python 3.12与CUDA 12.8镜像实战:启动GPU实例后的五项自检
开发语言·人工智能·python·深度学习·ai·gpu算力
Logic10114 分钟前
C语言/数据结构位运算题解:异或XOR找出地铁规划中的“独特坐标“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
AZaLEan__30 分钟前
ts接口梳理
开发语言
蓝桉柒731 分钟前
java判断语句
java·开发语言
Zane199432 分钟前
String::compareTo凭什么能当参数传?方法引用的四种形式讲透
java·后端
Lost of 程序猿40 分钟前
M2 实战:询价与采购订单聚合落地——跨聚合一致性、领域事件与 Outbox
开发语言·c#·asp.net·.net
速易达网络42 分钟前
用 Three.js 打造一座会呼吸的海岛:海风之屿飞艇巡航的技术实现
开发语言·javascript·ecmascript
yujunl1 小时前
U9 BE插件的调试
开发语言
青山木1 小时前
Hot 100 --- 打家劫舍
java·数据结构·算法·leetcode·动态规划
敲代码的嘎仔1 小时前
28届后端开发-百人小厂面试题
java·后端·面试·程序员·秋招·实习·转正