Soru
Programcıya, rastgele bir cümle (girilenCumle) veriliyor. Programcıdan ise, girilen cümledeki harflerin kaç kere tekrarlandığının sayılması ve bunu sonuç olarak yazdırması isteniyor.
Not: Girilen cümle türkçe karakter içermeyecek, 26 harfli ingiliz alfabesinden oluşacaktır.
Örnek
Girdi | Çıktı |
---|---|
girilenCumle: Hello World | Sonuç: d:1 e:1 h:1 l:3 o:2 r:1 w:1 |
Çözüm - C#
internal class Program
{
private static void Main(string[] args)
{
string girilenCumle = "Hello World";
string sonuc = "";
// ASCII tablosunda yer alan, alfabedeki harfleri otomatik olarak yükle
for (char ch = (char) 65; ch <= 90; ch++)
{
int sayac = 0;
// Girilen metindeki karakterleri döngü vasıtası ile tek tek al
foreach (char karakter in girilenCumle)
{
// Eğer harf numarası (bkz. ASCII tablosu - Örn. A harf 65) var ise sayacı arttır
if (ch == karakter || (ch + 32) == karakter)
{
sayac++;
}
}
// Eğer sayaç 0 değilse sonuca her bir harfin kaç kere yazıldığını ekle
if (sayac > 0)
{
sonuc += ch.ToString().ToLower() + ":" + sayac + "\n";
}
}
Console.WriteLine(sonuc);
Console.Read();
}
}
Çözüm - Java
public class Main {
public static void main(String[] args) {
String girilenCumle = "This is simple";
StringBuilder sonuc = new StringBuilder();
// ASCII tablosunda yer alan, alfabedeki harfleri otomatik olarak yükle
for (char ch = (char) 65; ch <= 90; ch++)
{
int sayac = 0;
// Girilen metindeki karakterleri döngü vasıtası ile tek tek al
for (char karakter : girilenCumle.toCharArray())
{
// Eğer harf numarası (bkz. ASCII tablosu - Örn. A harf 65) var ise sayacı arttır
if (ch == karakter || (ch + 32) == karakter) {
sayac++;
}
}
// Eğer sayaç 0 değilse sonuca her bir harfin kaç kere yazıldığını ekle
if (sayac > 0)
{
sonuc.append(String.valueOf(ch).toLowerCase()).append(":").append(sayac).append("\n");
}
}
System.out.println(sonuc);
}
}