实现一个算法,确定一个字符串 s 的所有字符是否全都不同。(题目来源于力扣)
示例:
输入: s = “leetcode”
输出: false
输入: s = “abc”
输出: true
首先看到题目的时候我想到了两个办法:
第一种是类似于桶的方法:用0-25来表示a-z所在的位置,字符串中哪个字母出现了就给对应位置的++,即将book[26]全部置为0,例如a每出现一次就将book[0]++,b每出现一次就将book[1]++,最后判断如果book[i]==0或者book[i]==1,返回true,否则返回false.其时间复杂度为O(n)
代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
bool isUnique(char* astr)
{
int book[26];
for(int i=0;i<26;i++)
{
book[i]=0