Создать связанный список анаграмм строки

Как создать связанный список анаграмм, чтобы последний символ строки каждого узла был первым символом строки следующего узла.

Пожалуйста, добавьте минимальный, полный и поддающийся проверке пример. stackoverflow.com/help/mcve

Abhishek Agarwal 10.03.2018 10:15
new LinkedList<>(Arrays.asList("AB", "BA"));. Это то, о чем вы просите. Итак, каков ваш настоящий вопрос и, самое главное, что вы пробовали? Мы не будем делать твою домашнюю работу.
JB Nizet 10.03.2018 10:16

Я верно задаю вопрос. Я просто поделился решением, так как думаю, что его можно еще оптимизировать.

Shashank Shekhar 10.03.2018 10:31
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
226
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
import java.io.InputStream;
import java.util.LinkedList;
import java.util.Scanner;;
class Anagrams
{
    int c = 0;
    LinkedList<String> ls = new LinkedList<String>();
    LinkedList<String> ls1 = new LinkedList<String>(); 
    void input()throws Exception
    {
      Scanner sc = new Scanner(System.in);
      System.out.print("Enter Word:");
      String s = sc.next();
      System.out.println("The Anagrams are : ");
      display("",s);
      getString(ls.getFirst());
      System.out.println(ls1);
      System.out.println("Total Number of Anagrams = "+c);
    }

    void display(String s1, String s2)
    {
       if (s2.length() == 1) { 
         ls.add(s1+s2);
         c++;
       }else {
         for(int i = 0; i<s2.length(); i++) {
           String x = s2.substring(i,i+1);
           String y = s2.substring(0,i);
           String z = s2.substring(i+1);
           display(s1+x, y+z);
         }
       }
    }

    void getString(String str ) {
        if (ls.size() == 0) {
          return;
        }
        if (ls1.size() == 0) {
          ls1.add(str);
          ls.remove(str);
        }

        // Rearrange the linked list
        for (String str1 : ls) {
          if (str.charAt(str.length() - 1) == str1.charAt(0)) {
        ls1.add(str1);
        str = str1;
        break;
      }
    }
        ls.remove(str);
        getString(str); 
    }

    public static void main(String args[])throws Exception
    {
       Anagrams ob=new Anagrams();
       ob.input();
    }
}

Я закодировал его после нескольких попыток, надеюсь, это может помочь другим

Shashank Shekhar 10.03.2018 10:25

Другие вопросы по теме