кодесурса

Упражнения Java String: Найти длину самой длинной подстроки без повторяющихся символов

script1adsense2code
script1adsense3code

Строка Java: упражнение 37 с решением

Напишите программу на Java, чтобы найти длину самой длинной подстроки без повторяющихся символов.

Иллюстрированная презентация:


Пример решения:

Java-код:

import java.util.LinkedHashMap;
public class Main {
 static void longestSubstring(String inputString) {
  char[] arr1 = inputString.toCharArray();
  String long_str = null;
  int str_length = 0;
  LinkedHashMap & lt;
  Character, Integer & gt;
  charPosMap = new LinkedHashMap & lt;
  Character, Integer & gt;
  ();
  for (int i = 0; i < arr1.length; i++) {
   char ch = arr1[i];
   if (!charPosMap.containsKey(ch)) {
    charPosMap.put(ch, i);
   } else {
    i = charPosMap.get(ch);
    charPosMap.clear();
   }
   if (charPosMap.size() > str_length) {
    str_length = charPosMap.size();
    long_str = charPosMap.keySet().toString();
   }
  }
  System.out.println("Input String : " + inputString);
  System.out.println("The longest substring : " + long_str);
  System.out.println("The longest Substring Length : " + str_length);
 }
 public static void main(String[] args) {
  longestSubstring("pickoutthelongestsubstring");
 }
}

Пример вывода:

 Входная строка: pickoutthelongestsubstring
Самая длинная подстрока: [u, b, s, t, r, i, n, g]
Самая длинная длина подстроки: 8

Блок - схема:

«Блок-схема:

Редактор кода Java:

Улучшите этот пример решения и опубликуйте свой код через Disqus

Предыдущий: Напишите программу на Java, чтобы проверить, являются ли две строки чередованием данной строки. Предполагая, что уникальные символы в обеих строках.
Далее: написать программу на Java для печати после удаления дубликатов из заданной строки.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code