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码表
相关推荐
爱吃生蚝的于勒3 分钟前
深入学习指针(5)!!!!!!!!!!!!!!!
c语言·开发语言·数据结构·学习·计算机网络·算法
羊小猪~~6 分钟前
数据结构C语言描述2(图文结合)--有头单链表,无头单链表(两种方法),链表反转、有序链表构建、排序等操作,考研可看
c语言·数据结构·c++·考研·算法·链表·visual studio
小鑫记得努力8 分钟前
Java类和对象(下篇)
java
binishuaio12 分钟前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
zz.YE14 分钟前
【Java SE】StringBuffer
java·开发语言
老友@14 分钟前
aspose如何获取PPT放映页“切换”的“持续时间”值
java·powerpoint·aspose
就是有点傻18 分钟前
WPF中的依赖属性
开发语言·wpf
洋24026 分钟前
C语言常用标准库函数
c语言·开发语言
进击的六角龙28 分钟前
Python中处理Excel的基本概念(如工作簿、工作表等)
开发语言·python·excel
wrx繁星点点29 分钟前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式