ARTS-24 字符串互异

概述:
左耳朵耗子专栏《左耳听风》 用户自发每周完成一个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);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章