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

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

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ı

substrings_string

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ına Bakalım

 

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.

C# ÖRNEKLERİ

Yapılan Yorumlar

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.