20 Aralık 2017 Çarşamba

C# ‘da Bir Dizedeki Tüm Alt Dizeleri Bulmak İçin Program

1 yorum
Bu makalede, csharp’daki( c# ) bir dizeden tüm olası alt dizeleri nasıl çıkaracağımızı öğreneceğiz.
Bu sık sorulan bir mülakat sorusudur.
Bir dizedeki tüm alt dizeleri bulmak için aşağıdaki örneğe göz atalım.

C# ‘da Bir Dizedeki Tüm Alt Dizeleri Bulmak İçin Program



class Program
    {
        static void Main()
        {
            string value = "rstuvwxyz";
            //Değerimizi alalim.
            for (int length = 1; length < value.Length; length++)
            {
                // bitiş indexi biraz zor.
                for (int start = 0; start <= value.Length - length; start++)
                {
                    string substring = value.Substring(start, length);
                    Console.WriteLine(substring);
                }
            }
        }
    }

Çıktısı




















C# 1-20 kadar olan sayıların alt küme toplamı 25 olanı bulan algoritma


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            #region klavyedenKüme
      
            var _kume = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20";
            var kume = _kume.Split(',');
            var altkume = AltKumeBul(kume);
 
            var sayi = AltkToplam(altkume);
            Console.WriteLine("Küme toplamı 25 olan altküme sayısı: " + sayi);
            Console.ReadKey();
        }
 
        private static int AltkToplam(List<string> altkume)
        {
            string[,] altk = new string[4, altkume.Count];
            int adet = 0;
            foreach (var v in altkume)
            {
                if (v != "")
                {
                    int toplam = 0;
                    var temp = v.Split(',');
                    var l = temp.Length;
                    toplam += temp.Sum(s => Convert.ToInt32(s));
                    if (toplam == 25)
                    {
                        adet++;
                    }
                }
            }
            return adet;
        }
 
        private static List<string> AltKumeBul(string[] kume)
        {
            int es = kume.Length;
            int aks = AksHesap(es);
            List<string> t = new List<string>();
            string[,] altkume = new string[es, aks];
            t.Add("");
            foreach (var s in kume)
            {
 
                int x = t.Count();
                for (int y = 0; y < x; y++)
                {
                    if (y == 0)
                    {
                     //   Console.WriteLine("{" + t[y] + s + "}");
                        t.Add(t[y] + s);
                    }
                    else
                    {
                      //  Console.WriteLine("{" + t[y] + "," + s + "}");
                        t.Add(t[y] + "," + s);
                    }
                }
            }
            return t;
        }
        private static int AksHesap(int es)
        {
            return (int)Math.Pow(2, es);
        }
    }
}
 
 
 
#endregion

Youtube İle Çıktısı


C# ‘da Bir Dizedeki Tüm Alt Dizeleri Bulmak İçin Programımızın kodlarını ve ekran çıktısını paylaştık bunun yanı sıra alt küme mantığınada bakmak için ikinci bir program paylaştık umarım faydalı olur.Faydalanan arkadaşların yorum bırakması diğer arkadaşlarada ulaşması açısından çok iyi olacaktır.


1 yorum :

  1. "C# ‘da Bir Dizedeki Tüm Alt Dizeleri Bulmak İçin Program Kod" başlığının altındaki kodlar yanlış . Misal verecek olursak. Daha kolay anlaşılması açısından.
    string value = "rstuvwxyz"; kodu yerine
    string value = "12345"; kodlarını yazalım.
    programın bize vereceği alt diziler:
    1
    2
    3
    4
    5
    12
    23
    34
    45
    123
    234
    345
    1234
    2345

    şeklinde oluyor. 135 nerede? 145 nerede?

    YanıtlaSil

b2b yazılım vois media