[Homework]Multidimensional Arrays, Sets, Dictionaries/ Problem 6. Count Symbols
Write a program that reads some text from the console and counts the occurrences of each character in it. Print the results in alphabetical (lexicographical) order.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Problem_6.Count_Symbols
{
class Program
{
static void Main(string[] args)
{
string words = Console.ReadLine();
char[] arr = words.ToCharArray(); Array.Sort(arr);
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]);
}
}
}
}
Това е кода който съм измислил. Не мога да се сетя обаче как да преброя по колко символа има (ако изобщо може).
Някакви насоки ще са благодарни :)
Много ясно описано.
Благодаря.
@badbutcher
Здравей пак,
Може да беше ясно описано, но бях бързала като го писах, в логиката имах пропуск и съответно излишен код.
Когато стигнем до i = arr.Length - 2 има действително две възможности, но няма нужда от допълнителни проверки, защото редът по-долу ги покрива и двете:
Console.WriteLine("{0}: {1} time/s", arr[i + 1], ++counter);
ако arr[i] != arr[i + 1], това значи, че arr[i] е било вече отпечатано в предния if, и сега остава да отпечатаме само една бройка от arr[i + 1]
ако обаче ако arr[i] == arr[i + 1], то в предния if arr[i] не е било отпечатано, ще го отпечатаме сега, но ще му прибавим плюс една бройка за arr[i + 1]