Miscellaneous | 不适用额外空间判断字符是否唯一

    xiaoxiao2025-05-07  15

    应某位博友的提问,本博文为解析博文,多谢支持 题目如下: 实现一个算法确定字符串中的字符是否均唯一出现,如果不使用额外的存储空间,你的算法该如何改变? 样例

    给出"abc",返回 true

    给出"aab",返回 false

    解题思路: 这题目使用标记来解题是最优解,只是不允许申请额外空间,本人以往博文中也有一个惯用的伎俩,用位标记“Miscellaneous | 判断两个字符串是变位词”。然而对付这题,这伎俩也就能满足解题了。一个int变量能概括标记26个字母所用的位了,其他字符自己适当用其它的类型即可。其余就是位运算的事了。 思路代码实现如下: int Method(vector<char> &c) { int i=0; for(char x:c) { if(i&1<<(x-'a')) return 0; i|=1<<(x-'a'); } return 1; }
    转载请注明原文地址: https://ju.6miu.com/read-1298837.html
    最新回复(0)