Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C#] Самое длинное симетричное слово предложения


Автор: KakTuz 8.6.2008, 20:40
Нада найдти самое длинное симетричное слово(прим."abccba") в предложении и вывести его!Мож кто код подкинет, а то запарился... smile 

Автор: Rififi 8.6.2008, 22:20
Код

static public string FindLongestSymmetric(string buf)
{
    string result = string.Empty;
    Regex rx = new Regex(@"\w+"); // бьём строку по словам
    foreach (Match mc in rx.Matches(buf))
    {
        string s = mc.ToString();
        if (s == Reverse(s) && (result.Length < s.Length))
            result = s;
    }
    return (result);
}

// "Перевернуть строку"
static public string Reverse(string s)
{
    StringBuilder sb = new StringBuilder(s.Length);
    for (int i=s.Length-1; i>=0; i--)
        sb.Append(s[i]);
    return (sb.ToString());
}

Автор: KakTuz 8.6.2008, 22:42
Вошем разабрался, вышло так, правда некрасиво, но работает...


Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0,p = 0, m = 0,a, b = 0, g, c, mm;
            string s = "atta ldaddadl kkllkk qwertyuioiuytrewq sukabljanahuip ttsulaalustt lool ";
            string t = " ";
            string z;
            string max="a";
            

            mm = b;
            for (i = 0; i < s.Length; i++)
            {
                m++;
                if (s[i] == t[0])
                {
                    p = i - m;

                    z = s.Substring(p + 1, m - 1);

                    {
                        g = z.Length;
                        c = g;
                        b = 0;
                        for (a = 0; a <(g / 2); a++)
                        {
                            c--;
                            if (z[a] == z[c]){b++;}
                         }
                        if (b==a&&max.Length<z.Length)

                        { max = z; mm = b; }


                    }
                    m = 0;
                }
            }


        }
    }
}




To Rififi: Спасибо, но слишкам уш хитры у тя код, в школе баюсь что неповерят! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)