概述:
左耳朵耗子专栏《左耳听风》 用户自发每周完成一个ARTS:
1.Algorithm:每周至少做一个 leetcode 的算法题
2.Review:阅读并点评至少一篇英文技术文章
3.Tip:学习至少一个技术技巧
4.Share:分享一篇有观点和思考的技术文章
请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。
package 面试算法题目;
/**
* @author idea
* @data 2019/10/13
*/
public class StringTest {
//默认全部为0
private static int[] charsIntArr = new int[256];
/**
* 转换为字符数组 这里面不考虑转义字符
*
* @param iniString
* @return
*/
public boolean checkDifferent(String iniString) {
int len = iniString.length();
if(len>256) {
return false;
}
for (int i = 0; i < len; i++) {
int item=iniString.charAt(i);
System.out.println(item);
if(charsIntArr[item]==1){
return false;
}
charsIntArr[item]=1;
}
return true;
}
public static void main(String[] args) {
StringTest s = new StringTest();
boolean result = s.checkDifferent("//72");
System.out.println(result);
}
}