面试题 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;
}
...
题目链接
来源:力扣(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;}
...
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...
题目链接
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
...
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(...
文章链接:https://www.dianjilingqu.com/51289.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。