Loading...
ZornitsaSerbezova avatar ZornitsaSerbezova 455 Точки
Best Answer

След дистинкт и сорт, не трябва ли да присвоиш листа на други променливи?

1
18/10/2016 17:07:11
WifiAvivi avatar WifiAvivi 151 Точки

Премина и последния тест. Но не разбирам каква е разликата за крайния резултат между:

 

palindromes.Distinct();
palindromes.Sort();

и

palindromes = palindromes.Distinct().OrderBy(x => x).ToList();

 

С какъв вход да тествам, за да я видя?

0
18/10/2016 18:21:38
ZornitsaSerbezova avatar ZornitsaSerbezova 455 Точки

Ами не знам как да го тестваш... Просто ако не присвоиш на друга променлива, няма резултат.... Някъде в паметта се извършва операцията, но новия стринг си остава неизползван... Нещо такова... Сори, ама нямам слободно време да чета и да се замислям :)

0
18/10/2016 18:32:33
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки
palindromes = palindromes.Distinct().ToList();

Между другото, ето още един интересен метод за намиране на палиндроми. "Свил" съм го от StackOverflow:
http://pastebin.com/m3MUXER9

1
18/10/2016 17:23:39
alabama415 avatar alabama415 101 Точки

Може и накрая, когато отпечаташ да го направиш така: 
Console.WriteLine(string.Join(", ", palindroms.OrderBy(x=>x).Distinct()));

В този случай не е нужно да се добавя .ToLIst()

1
19/10/2016 00:22:48
dbunalov avatar dbunalov 7 Точки

Това е моя код за Palindromes ... след малко мъчение разбрах, че не записвам крайния резултат никъде, а само го печатам.

Преди да направя запис в нов лист ми даваше 80/10 така е 100/100.

1
EmanuilNikolov avatar EmanuilNikolov 33 Точки
using System;
using System.Collections.Generic;
using System.Linq;

namespace Lab
{
    class Program
    {
        static void Main(string[] args)
        {
            Palindrom();
        }
        public static void Palindrom()
        {
            List<string> words = Console.ReadLine().Split(new char[] { ' ' , ',' , '.' , '?', '!' }, StringSplitOptions.RemoveEmptyEntries).ToList();
            //ToDo!
            var newStr = "";
            List<string> print = new List<string>();
            //
            foreach (var word in words)
            {
                for (int i = word.Length-1; i >= 0; i--)
                {
                    newStr += word[i];
                }
                if (newStr == word)
                {
                    print.Add(word);
                    newStr = "";
                }
                newStr = "";
                
            }
            print.Sort();
           Console.WriteLine(string.Join(", ", print));
        }
        private static void Text_Filter()
        {
            List<string> words = Console.ReadLine().Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
            string text = Console.ReadLine();
            //
            foreach (var word in words)
            {
                if (text.Contains(word))
                {
                    text = text.Replace(word, new string('*', word.Length));
                }
            }
            Console.WriteLine(text);
        }

        private static void Count_Substring()
        {
            string txt = Console.ReadLine().ToLower();
            string word = Console.ReadLine().ToLower();
            //
            int index = txt.IndexOf(word);
            var count = 0;
            while (index != -1)
            {
                count++;
                index = txt.IndexOf(word, index + 1);

            }
            Console.WriteLine(count);
        }

        private static void Reverse_String()
        {
            //Reverse string
            string str = Console.ReadLine();
            string str1 = "";
            for (int i = str.Length - 1; i >= 0; i--)
            {
                str1 += str[i];
            }
            Console.WriteLine(str1);
        }
    }
}

И аз го докарах до 80 т., но един тест не минава. Мисля, че логиката е вярна. Разглеждайки коментарите се сетих вместо Sort() да използвам OrderBy i Distinct и така стана. Но не схванах каква е разликата. Ако някой се сеща, моля да разясни! Благодаря !

0
EmanuilNikolov avatar EmanuilNikolov 33 Точки

Така става, като не чете добре условието => ". Print only unique palindromes". 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.