Umut D.

Umut D.

Powered by Jekyll & Github

  • Coding-Challenges

  • Soru

    Programcıya, uzunluğu veya kısalığı belli olmayan bir metin (girilenMetin) veriliyor. Programcıdansa, metindeki her bir harfin sıra sayısına dikkat edip, harfleri aralarına tire (“-“) koyarak ve baş harfleri büyük olarak yeniden yazması isteniyor.

    Örnek

    Girdi Çıktı
    girilenMetin: abcdef Sonuç: A-Bb-Ccc-Dddd-Eeeee-Ffffff
    girilenMetin: Test Sonuç: T-Ee-Sss-Tttt

    Çözüm - C#

    using System;
    using System.Text;
     
    internal class Program
    {
        private static void Main(string[] args)
        {
            string girilenMetin = "abcd";
            StringBuilder sonuc = new StringBuilder();
     
            // Eğer girilen metin boş ise gerekeni yap ve sonucu boş döndür
            if (string.IsNullOrEmpty(girilenMetin))
            {
                sonuc = new StringBuilder();
            }
            // Girilen metin boş değilse yola devam et
            else
            {
                // Girilen metindeki harflerin tümünü küçült
                girilenMetin = girilenMetin.ToLower();
     
                // İç içe döngü sayesinde harfleri bulundukları sıra sayısına göre yazdır
                for (int i = 0; i < girilenMetin.Length; i++)
                {
                    for (int j = 0; j < i; j++)
                    {
                        // Her bir harf değişiminde baş harfi büyük harf yap
                        if (j == 0)
                        {
                            sonuc.Append(girilenMetin[i].ToString().ToUpper());
                        }
     
                        // Büyük harf haricindeki aynı harfi küçük olarak yazmaya ve eklemeye devam et
                        sonuc.Append(girilenMetin[i]);
                    }
                    // Harf ve sıra geçişinden önce tire ekle
                    sonuc.Append("-");
                }
     
                // Döngüyü uygulamadığım birinci harfi ekleyerek, son satırdaki tire işaretini kaldır 
                sonuc = new StringBuilder(girilenMetin[0].ToString().ToUpper() + sonuc.Remove(sonuc.Length - 1, 1));
            }
     
            Console.WriteLine(sonuc);
     
            Console.Read();
        }
    }
    

    Çözüm - Java

    public class Main {
        public static void main(String[] args) {
            String girilenMetin = "abcd";
            StringBuilder sonuc = new StringBuilder();
     
            // Eğer girilen metin boş ise gerekeni yap ve sonucu boş döndür
            if (girilenMetin.trim().length() == 0)
            {
                sonuc = new StringBuilder();
            }
            // Girilen metin boş değilse yola devam et
            else
                {
                // Girilen metindeki harflerin tümünü küçült
                girilenMetin = girilenMetin.toLowerCase();
     
                // İç içe döngü sayesinde harfleri bulundukları sıra sayısına göre yazdır
                for (int i = 0; i < girilenMetin.length(); i++)
                {
                    for (int j = 0; j < i; j++)
                    {
                        // Her bir harf değişiminde baş harfi büyük harf yap
                        if (j == 0)
                        {
                            sonuc.append(String.valueOf(girilenMetin.charAt(i)).toUpperCase());
                        }
                        // Büyük harf haricindeki aynı harfi küçük olarak yazmaya ve eklemeye devam et
                        sonuc.append(String.valueOf(girilenMetin.charAt(i)));
                    }
                    // Harf ve sıra geçişinden önce tire ekle
                    sonuc.append("-");
                }
     
                // Döngüyü uygulamadığım birinci harfi ekleyerek, son satırdaki tire işaretini kaldır
                sonuc = new StringBuilder(String.valueOf(girilenMetin.charAt(0)).toUpperCase() + "-" + sonuc.substring(1, sonuc.length() - 1));
            }
     
            System.out.println(sonuc);
        }
    }