面试题 01.01. 判定字符是否唯一

面试题 01.01. 判定字符是否唯一

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

示例 1:

输入: s = "leetcode"
输出: false
示例 2:

输入: s = "abc"
输出: true
限制:

0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。

 

Java一行代码搞定???

class Solution {
    public static boolean isUnique(String astr) {
        return astr.chars().distinct().count() == astr.length();
    }
}

 

利用 Set 不可重复性

class Solution {
    public boolean isUnique(String astr) {
        HashSet<Character> set = new HashSet<>();
        for(char c : astr.toCharArray()){
            if(!set.add(c)) {
                return false;
            }
        }
        return true;
    }
}

 

先排序再判断:

判断分为三步:
1)sort()对字符串内字符进行排序
2)遍历字符串内各字符
3)如果遇到相同的就返回false,否则返回true

class Solution {
public:
    bool isUnique(string astr) {
        sort(astr.begin(),astr.end());
        for(int i = 1 ; i < astr.size();i++)
        {
            if(astr.at(i)==astr.at(i-1))
            {
                return false;
            }
        }
        return true;
    }
};

java 位运算

思路
由于ASCII码字符个数为128个,而且题目说了如果你不使用额外的数据结构,会很加分。因此可以使用两个64位的long变量来存储是否出现某个字符,二进制位1表示出现过, 0表示未出现过。具体代码如下:

  public boolean isUnique(String astr) {
        long low64 = 0;
        long high64 = 0;

        for (char c : astr.toCharArray()) {
            if (c >= 64) {
                long bitIndex = 1L << (c - 64);
                if ((high64 & bitIndex) != 0) {
                    return false;
                }

                high64 |= bitIndex;
            } else {
                long bitIndex = 1L << c;
                if ((low64 & bitIndex) != 0) {
                    return false;
                }

                low64 |= bitIndex;
            }

        }

        return true;
    }

 

不积跬步,无以至千里;不积小流,无以成江海。

推荐这些文章:

【软考】

DuplicatePublishOutputFiles
项目文件加
<ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles> </PropertyGroup>

...

判断质数方法

记录判断质数的方法,省得自己再去找或自己去敲
private boolean isPrime(int n) {

if (n < 2) return false;

if (n == 2) return true;

if (n % 2 == 0) return false;

for (int i = 3; i * i <= n; i += 2)

if (n % i == 0) return false;

return true;
}

...

刷题-力扣-面试题 01.01. 判定字符是否唯一

题目链接
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/is-unique-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题目描述
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false

示例 2:
输入: s = "abc"
输出: true

限制:

0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。

题目分析

根据题目描述,没有提到字符串中可能出现的字符范围,已经包含字符的编...

素数的快速判断方法

大于等于5的质数一定和6的倍数相邻。
但是与6的倍数相邻的不一定是素数,有可能是6倍邻数的倍数。
bool isprime(int n) { if(n<=1) return false; if(n==2||n==3) return true; if(n%6!=1&&n%6!=5) return false; for(int i=5; i<=sqrt(n); i+=6) { if(n%i==0||n%(i+2)==0) return false; } return true;}

...

【面试题库】001判定字符是否唯一

leetcode
https://leetcode-cn.com/problems/is-unique-lcci/
最差解法
class Solution {
public boolean isUnique(String astr) {
char[] strArray = astr.toCharArray();
for (int i = 0; i < strArray.length; i++) {
char str = strArray[i];
for (int j = 0; j < strA...

腾讯五十题 No.41 2的幂

题目链接
class Solution {
public boolean isPowerOfTwo(int n) {
if(n<=0) return false;
//8的二进制1000 7的二进制0111 做个与操作结果为零
if((n&n-1)==0) return true;
else return false;
}
}

...

判断变量是否为空

判断变量是否为空

/**
* 判断变量是否为空(0除外),
* @param v 判断对象
* @returns Boolean
*/
const isEmpty = v => {
switch (typeof v) {
case 'undefined':
return true;
case 'string':
if (v.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true;
break;
case 'boolean':
...

判断字符是否为数字或字母

Character.toLowerCase()
如果是字母或者数字返回true  否则false

...

01.01. Is Unique LCCI

class Solution {
public boolean isUnique(String astr) {
char[] str = astr.toCharArray();
Arrays.sort(str);
boolean flag = true;
for(int i=0;i<str.length-1;i++){
if(str[i]==str[i+1]){
return false;
}
}

r...

求如何用python判断输入数字是否为素数,我这种方法不知道为什么不行,求大神帮忙。

问题

最佳回答
运用python的数学函数
import math
def isPrime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
单行程序扫描素数
from math import sqrt
N = 100
[ p for p in range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(...

文章标题:面试题 01.01. 判定字符是否唯一
文章链接:https://www.dianjilingqu.com/51289.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>