Форум программистов, компьютерный форум, киберфорум
LINQ
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
141 / 180 / 44
Регистрация: 25.04.2012
Сообщений: 2,624
Записей в блоге: 5
1

Проверить решение задания

19.02.2015, 10:51. Просмотров 1911. Ответов 3
Метки нет (Все метки)

Дана последовательность непустых строк A, содержащих только заглавные буквы латинского алфавита. Для всех строк, начинающихся с одной и той же буквы, определить их суммарную длину и получить последовательность строк вида «S-C», где S — суммарная длина всех строк из A, которые начинаются с буквы С. Полученную последовательность упорядочить по убыванию числовых значений сумм, а при равных значениях сумм — по возрастанию кодов символов C.
Моё решение:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
string[] C = new string[6]
                { "CD","CV","AR","AX","MNB","RTG" };
var q = C.GroupBy(x => x.First())
                .Select(x => new
                {
                    S = C
                        .Where(y => y
                        .First() == x.Key)
                        .Select(y => y.Count())
                        .Sum(),
                    c = x.Key
                }).OrderByDescending(x => x.S)
                    .ThenBy(x => (int)x.c);
Смущает, что пришлось 2 раз обращаться к исходной последовательности в запросе. Допустимо ли такое?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2015, 10:51
Ответы с готовыми решениями:

Проверить решение или показать решение других
Проверьте пожалуйста решение, был бы очень признателен если бы указали на ошибки 1)...

Проверить правильность задания №2
Дано трехзначное число N. Проверить, будет ли сумма его цифр четным числом. #include "stdafx.h"...

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

Решение задания
Составить таблицу, содержащую информацию о стоимости пяти наименований товара в течение второй...

3
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30770 / 20101 / 7853
Регистрация: 22.10.2011
Сообщений: 34,920
Записей в блоге: 6
19.02.2015, 11:11 2
C#
1
2
3
4
5
            var q = C.GroupBy(x => x.First()).Select(g => new
                {
                    S = g.Select(st=>st.Length).Sum(),
                    C = g.Key
                }).OrderByDescending(x => x.S).ThenBy(x => (int)x.C);
не проще?
1
Заблокирован
19.02.2015, 12:23 3
Цитата Сообщение от volvo Посмотреть сообщение
не проще?
volvo, можно еще немного упростить - сразу Sum использовать

C#
1
2
3
4
            var q = C.GroupBy(x => x.First())
                .Select(g => new { S = g.Sum(st => st.Length), C = g.Key })
                .OrderByDescending(x => x.S)
                .ThenBy(x => (int)x.C);
3
1 / 1 / 0
Регистрация: 09.09.2017
Сообщений: 116
19.01.2021, 01:25 4
Не стоит забывать, что у метода расширения GroupBy() есть перегрузка, где мы можем получить последовательность строк, удовлетворяющих ключу.
C#
1
2
3
4
5
6
7
        static void Main(string[] args)
        {
            string[] A = { "HELLO", "HELLO", "SUNNY", "COMPREHENSIVE", "MAX", "MIN", "AND", "DEEP", "BYE", "PAINFUL"};
            Console.WriteLine(string.Join("\r\n", A.GroupBy(s => s.First(), (c, e) => new { c, s = e.Sum(s => s.Length) })
                .OrderByDescending(a => a.s).ThenBy(a => a.c)
                .Select(a => $"{a.s}-{a.c}")));
        }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2021, 01:25

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

Проверить правильность выполнения задания
формула : y'=0.133(x^2+sin2.1x)+0.872y вот код: Private Sub CommandButtonl_Click() Dim x, x1,...

ПОМОГИТЕ В РЕШЕНИЕ ЗАДАНИЯ
Т

Решение простого задания
Вот задание: Дано целое число N (1 ≤ N ≤ 26). Сформировать строку, содержащую N первых прописных...

Нужно решение задания
Предмет: информационные технологии, курс первый, язык программирования - с# (Си Шарп), тема работы...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.