Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 07.09.2019
Сообщений: 14

Напечатать те слова последовательности, которые отличны от последнего слова и ...

07.09.2019, 16:13. Показов 4842. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству: каждая буква входит в слово не менее двух раз;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2019, 16:13
Ответы с готовыми решениями:

Напечатать те слова последовательности, которые отличны от последнего слова и буквы слова упорядочены
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами -- не...

Напечатать те слова последовательности, которые отличны от последнего слова
Дана последовательность содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не...

Напечатать те слова строки, которые отличны от последнего слова с условием
Здравствуйте дорогие товарищи. Сегодня решал задачи по программированию и наткнулся на довольно таки интересную. Раньше я не имел дело...

9
 Аватар для jester
352 / 247 / 76
Регистрация: 18.03.2016
Сообщений: 979
07.09.2019, 16:59
QmlQrt,

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
                public static void Main()
                {
                         string strs =  "abcbca   abab   abdc  badadbad.";
            
            foreach(var a in GetWords(strs))
                Console.WriteLine(a);
 
        }
 
        public static IEnumerable<string> GetWords(string posledowatelnost)
        {
            string[] arr = posledowatelnost.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries);
            arr[arr.Length -1] = arr[arr.Length -1].TrimEnd('.');
 
            return arr
                  .Where(x=> x!= arr.Last()) //не равны последнему
                  .Append(arr.Last()) //последний тоже не равен последнему, поэтому надо его добавить
                  .Where(x=> 
                             x
                            .GroupBy(z=>z) //группировка по символам в слове
                            .All(ch=>ch.Count()>1) //каждая группа одинаковых символов должна иметь больше одного элемента
                        );
        }
0
0 / 0 / 0
Регистрация: 07.09.2019
Сообщений: 14
07.09.2019, 17:03  [ТС]
можно ли как-то используя простые методы, через циклы и тд и тп?
0
 Аватар для jester
352 / 247 / 76
Регистрация: 18.03.2016
Сообщений: 979
07.09.2019, 17:09
QmlQrt, да, но это будет не так круто)
0
0 / 0 / 0
Регистрация: 07.09.2019
Сообщений: 14
07.09.2019, 17:14  [ТС]
необходимо решение через простой алгоритм, такое слишком круто
0
 Аватар для jester
352 / 247 / 76
Регистрация: 18.03.2016
Сообщений: 979
07.09.2019, 17:28
QmlQrt,
C#
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
27
28
29
30
31
32
33
34
35
36
37
38
39
public static IEnumerable<string> GetWords(string posledowatelnost)
        {
            string[] arr = posledowatelnost.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries);
            arr[arr.Length -1] = arr[arr.Length -1].TrimEnd('.');
 
            List<string> arr2 = new List<string>(arr);
            
            //не равны последнему
            for(int i = 0;i< arr2.Count-1; i++)
                if(arr2[i]==arr2.Last())
                    arr2.RemoveAt(i);
            
            //каждая группа одинаковых символов должна иметь больше одного элемента
            var tempChars = new Dictionary<char, int>();
            for(int i = 0; i < arr2.Count; i++)
            {
                foreach(char a in arr2[i])
                {
                    if(tempChars.ContainsKey(a)) 
                        tempChars[a]++;
                    else                    
                        tempChars[a] = 1;
                }
                
                bool is2 = true;
                foreach(var a in tempChars)
                {
                    if(a.Value<2) 
                    {
                        is2 = false; 
                        break;
                    }
                }
                if(!is2) arr2.RemoveAt(i);
 
                tempChars.Clear();  
            }
            return arr2;
        }
0
0 / 0 / 0
Регистрация: 07.09.2019
Сообщений: 14
07.09.2019, 17:42  [ТС]
Спасибо, только еще выводит последнее слово, а его не надо
0
 Аватар для jester
352 / 247 / 76
Регистрация: 18.03.2016
Сообщений: 979
07.09.2019, 18:30
QmlQrt,
C#
1
2
3
4
//не равны последнему
            for(int i = 0;i< arr2.Count; i++)
                if(arr2[i]==arr2.Last())
                    arr2.RemoveAt(i);
0
0 / 0 / 0
Регистрация: 07.09.2019
Сообщений: 14
07.09.2019, 18:34  [ТС]
Благодарю
0
 Аватар для jester
352 / 247 / 76
Регистрация: 18.03.2016
Сообщений: 979
07.09.2019, 22:24
QmlQrt, везде где я удалял элементы нужно счётчик на 1 назад ставить потому что когда элемент удаляется на его место становится тот что был после него, но на следующей итерации цикла i увеличивается на 1 и этот элемент пропускается.

МОжно ещё проверять элементы с конца. Тоже не будет проблем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.09.2019, 22:24
Помогаю со студенческими работами здесь

Напечатать слова, которые отличны от последнего и буквы которых упорядочены по алфавиту
Помогите решить задачу. Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв;...

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

Вывести на экран те слова, которые отличны от последнего слова первой строки текста и симметричны
Вывести на экран те слова, которые отличны от последнего слова первой строки текста и симметричны.

Вывести слова текста, которые отличны от последнего слова и количество символов в которых не более четырех
Дан текст, содержащий от 2 до 50 слов, в каждом из которых от 1 до 7 строчных латинских букв; между соседними словами − не менее ...

Вывести слова, которые отличны от последнего слова
Задание: Дан текст. Вывести слова, которые отличны от последнего слова и в них нет повторяющихся букв. Мой код: using System; using...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru