zoukankan      html  css  js  c++  java
  • 算法:确定一个字符串的所有字符是否全都不同。假使不允许使用额外的数据结构

     1 package shuzhu;
     2 
     3 import java.util.Scanner;
     4 
     5 public class Test {
     6         //第一种
     7         public static boolean isUniqueChars(String str) {
     8             if (str.length() > 128) {
     9                 return false;
    10             }
    11             int checker = 0;
    12             for (int i = 0; i < str.length(); i++) {
    13                 int val = str.charAt(i) - 'a';
    14                 if ((checker & (1 << val)) > 0) return false;
    15                 checker |= (1 << val);
    16             }
    17             return true;
    18         }
    19         //第二种
    20       /*定义一个bool型大小为128的数组array,然后遍历输入的字符串,每遍历一个字符,
    21         令int型变量val等于该字符的的ASCII码,如果这个字符之前都没有出现过,
    22         那么令array[val]等于true,如果这个字符之前出现过了,
    23         也就是array[val]已经等于true了,就返回false。
    24         当字符串中所有字符都遍历结束后,如果没有返回false,
    25         那么说明字符串中没有重复的字符,返回true*/
    26         public static boolean isUniqueChars2(String str) {
    27             if (str.length() > 128) {
    28                 return false;
    29             }
    30             boolean[] char_set = new boolean[128];
    31             for (int i = 0; i < str.length(); i++) {
    32                 int val = str.charAt(i);//int型变量val等于该字符的的ASCII码
    33                 if (char_set[val]) return false;
    34                 char_set[val] = true;
    35             }
    36             return true;
    37         }
    38 
    39         public static void main(String[] args) {
    40             System.out.println("请输入字符串:");
    41             Scanner s = new Scanner(System.in);
    42             String i =    s.next();        
    43             String [] words = {i};
    44             for (String word : words) {
    45                 System.out.println(word + ": " + isUniqueChars(word) + " " + isUniqueChars2(word));
    46             }
    47         }
    48 
    49     
    50 }

    数据分析与算法

  • 相关阅读:
    [UE4]创建多把枪,使用Class,参数的对象类型
    [UE4]换枪需要做的事,容器:数组、集合、Map
    [UE4]蓝图重构
    [UE4]为什么会有类型检查
    [UE4]ChildActor组件
    [UE4]Character,飞行模式。
    [UE4]Pawn和Controller,第一人称和第三人称切换
    [UE4]组件
    [UE4]Acotr
    [UE4]封装、继承、多态
  • 原文地址:https://www.cnblogs.com/jack4738/p/6959038.html
Copyright © 2011-2022 走看看