Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2012, 20:20   #1
Kil001
 
Регистрация: 15.12.2011
Сообщений: 7
Печаль C# Немогу разобраться с анаграммами.

Доброе время суток!

Не могу сообразить как сделать проверку анаграмм.
Само задание такое:
•Дана строка, где слова разделяются пробелом, запятой и точкой.
•Распечатайте слова в отсортированном виде (без повторений)
•Найдите самое длинное слово
•Распечатайте те слова, которые являются палиндромами и анаграммами

Все пункты должны быть реализованы с помощью функций

Вот что у меня получилось:

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Praktika_3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.GetEncoding(866);
            Console.Write("Введите текст:  ");
            string text = Console.ReadLine();
            char[] separators = { ' ', ',', '.' };
            string[] splitedText = text.Split(separators);
            int maxlen = 0, index = 0;
            for (int i = 0; i < splitedText.Length; i++)
            {
                if (splitedText[i].Length > maxlen)
                {
                    maxlen = splitedText[i].Length;
                    index = i;
                }
            }
            Console.WriteLine("\nСамое длинное слово: {0}", splitedText[index]);
            Array.Sort(splitedText);
            Console.WriteLine("\nОтсортировали и выводим без повторений: ");
            for (int i = 0; i < splitedText.Length; i++)
                if (Array.IndexOf(splitedText, splitedText[i]) == i)
                    Console.WriteLine(splitedText[i]);
            Console.WriteLine("\nПалиндромы: ");
            foreach (string str in splitedText)
            {
                if (str != null)
                {
                    if (Polyndrom(str))
                    {
                        Console.WriteLine(str);
                    }
                }
            }
            Console.WriteLine("\nАнаграммы: ");
            {
            }
        }
        private static bool Polyndrom(string input)
        {
            if (input.Length > 1)
            {
                char[] temp = input.ToCharArray();
                Array.Reverse(temp);
                if (input == new string(temp))
                {
                    return true;
                }
            }
            return false;
        }
        private static void Anagramma(string word1, string word2)
        {
            Console.Write("Введите первое слово: ");
            char[] word1Arr = word1.ToLower().ToCharArray();
            Console.Write("Введите второе слово: ");
            char[] word2Arr = word2.ToLower().ToCharArray();
            Array.Sort(word1Arr);
            Array.Sort(word2Arr);
            word1 = new string(word1Arr);
            word2 = new string(word2Arr);
            if (word1 == word2)
               return true;
            else
               return false;
        }
        
    }
}
Kil001 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Немогу разобраться с циклом for FRATER1234 Общие вопросы C/C++ 22 02.10.2011 16:18
Немогу разобраться с базой margarin Microsoft Office Access 0 28.06.2009 03:25
немогу разобраться с БД tatarinKZ Помощь студентам 1 21.01.2009 14:35
Немогу разобраться с хуками! Altera Win Api 12 14.12.2008 17:15