2015-02-27 2 views
-1

Проблема просит «реализовать алгоритм, чтобы определить, является ли строка имеет все уникальный характер.определить, если строка имеет уникальные символы

я увидел решение, но не совсем понимаю.

public boolean isUniqueChars(String str){ 

    if(str.length()>256) return false; 
     boolean[] char_set = new boolean[256]; 
     for(int i=0; i<str,length;i++){ 
     int val=str.charAt(i); 
     if(char_set[val]) 
      return false; 
     char_set[val]=true; 
    } 
    return true; 
} 

мы не используем ParseInt или (INT), чтобы преобразовать символ в целое

Что boolean[] char set=new boolean[256] означает Зачем нам нужен этот код: -? char_set[val]=true

+0

Это не очень хороший алгоритм, с одной стороны, он предполагает 8 бит символов. –

+1

Попробуйте написать свое собственное и задайте здесь конкретные проблемы. –

ответ

1

В основном пытается инициализировать массив, который отслеживает, какие символы были замечены в строке. Поэтому, если персонаж уже появился раньше, char_set[val] будет правдой, иначе он будет false (значение по умолчанию).

Используем ли мы parseInt для преобразования символов в целые числа?
Нет, вам не обязательно. Символы можно рассматривать как целые числа как внутренние, они всего лишь некоторые целые числа от ASCII table

+0

И что происходит, когда строка содержит «π»? –

+0

Ошибка. Это плохой алгоритм. – Ra1nWarden

Смежные вопросы