首页 > 试题广场 >

判断字符是否唯一

[编程题]判断字符是否唯一
  • 热度指数:3590 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个字符串,请你判断其中每个字符是否全都不同。

数据范围:字符串长度满足
示例1

输入

"nowcoder"

输出

false

说明

 "nowcoder" 中 'o' 出现了两次,因此返回 false 
示例2

输入

"nowcOder"

输出

true

说明

每个字符都只出现了一次 
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param str string字符串 
 * @return bool布尔型
 */
int cmp(const void* e1,const void* e2){
    return *((char*)e1)-*((char*)e2);
}
bool isUnique(char* str ) {
    // write code here
    qsort(str,strlen(str),1,cmp);
    for(int i=1;i<strlen(str);i++){
        if(str[i]==str[i-1])
          return false;
    }
    return true;
}

发表于 2022-12-23 22:43:40 回复(0)
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param str string字符串 
 * @return bool布尔型
 */
bool isUnique(charstr ) {
    // write code here
    int a[128]={0},i;
    for(i=0;*(str+i)!='\0';i++)
    {
        int b=*(str+i);
        a[b]++;
        if(a[b]>1)
        {
            return false;
        }
    }
    return true;
}
发表于 2022-11-20 12:21:39 回复(0)
bool isUnique(char* str ) {
    // write code here
    int hash[128] = {0};
    int len = strlen(str);
    char *p = str;
    int num = 0;
    for(int i=0; i<len; i++)
    {
        num = hash[*(p+i)];
        if(num == 0)
            hash[*(p+i)]++;
        else
            return false;
    }
    return true;
}
发表于 2022-04-13 11:30:52 回复(0)
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int compar(const void *a,const void*b){
    
    return *(char *)a-*(char*)b;
}


bool isUnique(char* str ) {
    // write code here
    /*char a =[10000]={0};
         a=str;*/
        
     
   int l = strlen(str);
    int i;
    if(l<=1)return true;
    qsort(str,l,sizeof(char),compar);
    for(i=1;i<l;i++){
        
      if(str[i]==str[i-1])
       return false;
        
        
        
    }
        
    return true;
        
     
    
发表于 2022-02-26 23:28:05 回复(0)

问题信息

难度:
4条回答 4336浏览

热门推荐

通过挑战的用户

查看代码