Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
3 / 3 / 0
Регистрация: 20.12.2018
Сообщений: 232

В каких словах содержатся символы

08.08.2019, 19:37. Показов 3411. Ответов 49
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу сделать метод, который принимает буквы и массив слов(типа библиотека слов) и проверяет, какие слова можно сделать из этих букв.


сделал метод, который ищет слова, в которых содержится определенная буква.
Java
1
2
3
4
5
6
7
8
9
10
11
12
String[] words = {"one", "two", "three", "four"}; и так далее
public static void makeWord(String letters, String[] words){
        for (int i = 0; i < letters.length(); i++) {
            char symbol = letters.charAt(i);
            for(String word : words){
                String cS = Character.toString(symbol);
                if(word.contains(cS)){
                    System.out.println(word);
                }
            }
        }
    }
не знаю, как сделать, чтобы оно:
1. Выводило только слова, которые содержат все буквы, которые ввел.
Тоесть, если я ввожу "oe", мне не выводит и "one" и "two", а только "one", так как в "two" уже нет "e".
2. Ну и в итоге, сделать, чтобы из тех букв, что я ввожу, выводило слова. Например: "eon" - "one", "eons" - ничего, так как нет такого слова с таким набором букв в массиве. Так же если "oe" - ничего, так как нет такого слова без "n".
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.08.2019, 19:37
Ответы с готовыми решениями:

Нужно превратить строку: в результирующей строке должны содержатся первые символы всех слов из заданной строки
Задана строка, состоящая из слов. Осуществить следующее превращение строки: в результирующей строке должны содержаться первые символы всех...

Во всех четных словах поменять первый и последний символы местами
В заданном тексте во всех четных словах поменять местами первый и последний симво- лы.

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

49
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
09.08.2019, 08:36
Студворк — интернет-сервис помощи студентам
Во, пока писАл, Авиз фишку просек.
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
09.08.2019, 08:45
Цитата Сообщение от iSmokeJC Посмотреть сообщение
фишку просек.
это же азбука, алгоритмов))

Добавлено через 6 минут

Не по теме:

Цитата Сообщение от iSmokeJC Посмотреть сообщение
Эмс?
не боишься? черная Фатима так не оставит...

0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
09.08.2019, 09:22

Не по теме:

Цитата Сообщение от Aviz__ Посмотреть сообщение
черная Фатима так не оставит...
сто пудов)))



Добавлено через 7 минут
Цитата Сообщение от iSmokeJC Посмотреть сообщение
letters - beee
word - bebe
Эмс?
iSmokeJC, спасибо за тест. Я не эксперт по Java и не могу себе позволить тыкать пальцем в небо, трижды давая неверное решение.
Поэтому, прилежно исправляюсь:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public static void makeWord2(String letters, String[] words){
        for (String word : words) {
            if (letters.length() == word.length()) {
                int count = 0;
                for (int i = 0; i < word.length(); i++) 
                    count += (letters.charAt(i) - word.charAt(i));
                if (count == 0) {
                    boolean flag = true;
                    for (char letter : letters.toCharArray()) {
                        if (word.indexOf(letter) == -1) {
                            flag = false;
                            break;
                        }
                    }
                    if (flag)
                        System.out.println(word);
                }
            }
        }
    }
Уверена, что у Авиза код лучше, но я его еще не смотрела)))
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
09.08.2019, 09:27
Цитата Сообщение от alicesmagic
трижды давая неверное решение
У тебя уже дважды. Продолжай.
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
09.08.2019, 09:41
Цитата Сообщение от iSmokeJC Посмотреть сообщение
У тебя уже дважды. Продолжай.
iSmokeJC, уже нет)
Еще тест?

Добавлено через 12 минут
Дааа... а вот мой мечтательный космонавт, хоть и без значка эксперта, но реально крутой. Его код действительно лучше
Молодец, Авиз! Буду тобой гордиться!)))
0
09.08.2019, 09:49

Не по теме:

Цитата Сообщение от alicesmagic Посмотреть сообщение
Я не эксперт по Java и не могу себе позволить
неужели ты живешь в Аду, смакуя те крупицы своей мнимой правоты? тебе человек помог понять границы твоего подхода, а ты? ты хочешь, чтобы другие, менее добрые люди, когда понесут сдавать твой код, выразили свои чувства?
зачем ты тут строишь из себя самку богомола?

0
09.08.2019, 09:58

Не по теме:

Цитата Сообщение от Aviz__ Посмотреть сообщение
неужели ты живешь в Аду, смакуя те крупицы своей мнимой правоты? тебе человек помог понять границы твоего подхода, а ты? ты хочешь, чтобы другие, менее добрые люди, когда понесут сдавать твой код, выразили свои чувства?
зачем ты тут строишь из себя самку богомола?
А я не со всеми так обхожусь. Только с теми, кто демонстративно ведет себя по хамски. Без разницы, словами или действием. И с теми, кто глядя мне в глаза лжет (но это уже приватная история). Любого другого я бы просто поблагодарила.
А вообще, Авиз, ты, надеюсь, не забыл, что с оффтопом сюда?

0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
09.08.2019, 18:45
Цитата Сообщение от alicesmagic Посмотреть сообщение
глядя мне в глаза лжет
Самое интересное, что утверждение твердое и безапелляционное.
Цитата Сообщение от alicesmagic Посмотреть сообщение
Еще тест?
letters - aadd
word - abcd
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
09.08.2019, 23:02
Цитата Сообщение от iSmokeJC Посмотреть сообщение
letters - aadd
word - abcd
iSmokeJC, согласна. Затупила.
Спасибо, что помогли понять границы моего подхода
0
10.08.2019, 00:01

Не по теме:

Цитата Сообщение от alicesmagic Посмотреть сообщение
согласна.
Невероятно... iSmokeJC, снимаю перед вами шляпу

0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
10.08.2019, 09:19

Не по теме:

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



iSmokeJC, еще тест?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public static void makeWord(String letters, String[] words) {
        for (String word : words) {
            if (letters.length() == word.length()) {
                String str = word;
                while (!str.equals("")) {
                    int k = letters.indexOf(str.charAt(0));
                    if (k >= 0) {
                        str = str.substring(1);
                        letters = letters.substring(0, k) + letters.substring(k + 1);
                    }
                    else break;
                }
                if (str.equals(""))
                    System.out.println(word);
            }
        }
    }
После кода от Авиза, глупо уже этим заниматься, но раз уж назвалась груздем...
Зато без импорта)))
Хотя, я и не могу (в силу опыта) точно утверждать, но, мне кажется, что без сортировки код все же эффективнее. Авиз, не?

Добавлено через 5 минут
И да, Aviz__, если уж ты понижаешь регистр здесь char [] tmpChar = wordDict.toLowerCase().toCharArray();, то, наверное, нужно понижать его и у letters...
Иначе:
letters - aBcd
word - aBcd
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
10.08.2019, 09:22
Цитата Сообщение от alicesmagic Посмотреть сообщение
без сортировки код все же эффективнее.
я не знаю, что в твоем понятии есть эффективность!
а так, для 7 и более символов подсчитай сколько будет вариантов))
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
10.08.2019, 09:26
Цитата Сообщение от Aviz__ Посмотреть сообщение
для 7 и более символов подсчитай сколько будет вариантов))
Ты нашел в коде перебор вариантов? Где?
Семь итераций цикла будет)))
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
10.08.2019, 09:27
Цитата Сообщение от alicesmagic Посмотреть сообщение
понижаешь регистр здесь
вне всяких сомнений!
0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
10.08.2019, 09:27
Цитата Сообщение от Aviz__ Посмотреть сообщение
я не знаю, что в твоем понятии есть эффективность!
Ну, в данном случае, время выполнения)
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
10.08.2019, 09:28
Цитата Сообщение от alicesmagic Посмотреть сообщение
Где?
ты чуть подумаешь и поймешь)
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
10.08.2019, 09:32
Чтобы удалить символ нашинковать строку сабстрингом, при этом создав 100500 промежуточных объектов-строк... сама эффективность. StringBuilder зачем придуман? Удалить символ - 1 строка (1 метод).
Цитата Сообщение от alicesmagic Посмотреть сообщение
String str = word;
Это зачем?
0
10.08.2019, 09:37

Не по теме:

Цитата Сообщение от iSmokeJC Посмотреть сообщение
сама эффективность.
Бро, зачем злить Фатиму? она же пластидом оближется и каюк форуму...

0
 Аватар для alicesmagic
233 / 130 / 27
Регистрация: 24.08.2016
Сообщений: 875
10.08.2019, 09:40
Цитата Сообщение от Aviz__ Посмотреть сообщение
ты чуть подумаешь и поймешь)
Не могу понять твою логику...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Helper {
 
    public static void makeWord(String letters, String[] words) {
        for (String word : words) {
            if (letters.length() == word.length()) {
                String str = word;
                while (!str.equals("")) {
                    int k = letters.indexOf(str.charAt(0));
                    if (k >= 0) {
                        str = str.substring(1);
                        letters = letters.substring(0, k) + letters.substring(k + 1);
                    }
                    else break;
                    System.out.println(str + " " + letters);
                }
                if (str.equals(""))
                    System.out.println(word);
            }
        }
    }
    
    public static void main(String[] args) {
        String[] words = {"onetwothreefour", "abcd", "bebe"};
        makeWord("oeownothetefurr", words);
    }
}
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
netwothreefour eownothetefurr
etwothreefour eowothetefurr
twothreefour owothetefurr
wothreefour owohetefurr
othreefour oohetefurr
threefour ohetefurr
hreefour oheefurr
reefour oeefurr
eefour oeefur
efour oefur
four ofur
our our
ur ur
r r
 
onetwothreefour
Добавлено через 2 минуты
Цитата Сообщение от iSmokeJC Посмотреть сообщение
StringBuilder зачем придуман?
iSmokeJC, а я его еще не проходила. Я только учусь. Мне до эксперта как до китая...

Цитата Сообщение от iSmokeJC Посмотреть сообщение
Это зачем?
А что по коду не видно?
...
Так что на счет теста?
0
 Аватар для Aviz__
2762 / 2069 / 510
Регистрация: 17.02.2014
Сообщений: 9,507
10.08.2019, 09:41
Цитата Сообщение от alicesmagic Посмотреть сообщение
Не могу понять
знать время не пришло))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.08.2019, 09:41

В каких словах предложения гласных букв больше чем согласных?
Товарищи! Это снова я, и я снова нуждаюсь в вашей помощи. Желательно бы как можно быстрее. Дана задача: В каких словах предложения гласных...

Определить, какие символы не содержатся в тексте
Буду очень благодарен за решение двох задач) Добавлено через 11 минут Перевод: Есть два слова (слово - набор символов, без...

Одномерный массив: содержатся символы латинского алфавита
1.)Написать программу(одномерный массив), в котором содержатся символы латинского алфавита и ищутся одинаковые значения, после чего...

Определить, содержатся ли в файле символы латинского алфавита
нужно решить задачу. Напишите программу, которая считывает текстовый файл и определяет, содер-жатся ли в нем символы латинского алфавита. ...

Вывести все слова, в которых не содержатся заданные символы
Вывести все слова в которых не содержатся символы. Добавлено через 1 минуту char temp = {}, Array = { &quot;!@%$#&amp;*&quot; }, A =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru