zoukankan      html  css  js  c++  java
  • 【1】确定字符互异

     【题目】 

    请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。
    给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。
    
    测试样例:
    "aeiou"
    返回:True
    "BarackObama"
    返回:False

    解法:

    1  不使用额外存储结构:

    import java.util.*;
    
    public class Different {
        public boolean checkDifferent(String initString) {
            
            //超出256个字符肯定会有重复
            if (initString == null || initString.length() <= 0 || initString.length() > 256){
                return false;
            }
            
            int len = initString.length();
            for(int i = 0;i < len;i++){
                //获取ASCII码
                char c = initString.charAt(i);
                int cNum = Integer.valueOf(c);
                for (int j = i + 1;j < len;j++){
                    char tempC = initString.charAt(j);
                    int tempCNum = Integer.valueOf(tempC);
                    if((cNum - tempCNum) == 0){
                        return false;
                    }
                }
               
            }
            
            return true;
        }
    }

    2  使用额外存储结构:

    import java.util.*;
    
    public class Different {
        public boolean checkDifferent(String iniString) {
            if(iniString == null || iniString.length() <= 0)
                return false;
            Set set = new HashSet();
            for(int i=0; i < iniString.length(); i++){
                if(!set.add(iniString.charAt(i))){
                    return false;
                }
                set.add(iniString.charAt(i));
            }
            return true;
        }
    }
  • 相关阅读:
    centos下安装nethogs
    Nginx+Tomcat反向代理利用certbot实现https
    Mysql主从复制读写分离
    短链接及关键字过滤ac自动机设计思路
    接口访问加密和限频方案
    算法笔记
    redis原理及使用
    memcached原理
    Spring中AOP的两种代理方式(Java动态代理和CGLIB代理-转载
    基于注解的Spring AOP的配置和使用--转载
  • 原文地址:https://www.cnblogs.com/noaman/p/6915178.html
Copyright © 2011-2022 走看看