Skip to content

Latest commit

 

History

History
57 lines (42 loc) · 3.87 KB

File metadata and controls

57 lines (42 loc) · 3.87 KB

SymbolStats

პრობლემა: კონსოლიდან შეგყვავს ტექსტი პროგრამამ უნდა დაბეჭდოს სტატისტიკა რომელი სიმბოლო რამდენჯერ გვხვდება.

პრობლემის გადაჭრის გზა

  • დავიმახსოვროთ ყველა განსხვავებული სიმბოლო.
  • თითოეული სიმბოლოსთვის დავთვალოთ, თუ რამდენჯერ გვხვდება იგი.

განსხვავებული სიმბოლოების შენახვა

განსხვავებული სიმბოლოების დამახსოვრება String-ში შეგვიძლია. IndexOf(გვიბრუნებს პირველ ინდექსს, სადაც გვხვდება ესა თუ ის სიმბოლო) მეთოდის მეშვეობით ჩვენ შევამოწმებთ გვხვდება თუ არა სიმბოლო(თუკი არ გვხვდება IndexOf დაგვიბრუნებს -1-ს).

შესაბამისად მივიღებთ კოდს:

if(usedCharacters.indexOf(ch) == -1){
        usedCharacters+=ch;
 }

სიმბოლოების რაოდენობების დათვლა

countCharacters მეთოდში დავითვალოთ კონკრეტული სიმბოლოს რაოდენობა. შემოვიღოთ count ცვლადი, რომელშიც შევინახავთ პასუხს. თუკი სტრინგზე იტერაციისას შეგვხვდა ეს კონკრეტული სიმბოლო, count ცვლადის მნიშვნელობა გავზარდოთ.

შესაბამისად მივიღებთ კოდს:

private int countCharacters(String text , char ch){
        int count = 0;
        for(int i = 0; i < text.length(); i++){
            char current = text.charAt(i);
            if(current == ch){
                count++;
            }
        }
        return count;
}

რატომ იმუშავებს კოდი ტექსტის ნებისმიერი მნიშვნელობისთვის?

  • კოდი ტექსტის ნებისმიერი მნიშვნელობისთვის სწორად იმუშავებს, რადგან ამოცანის ამოხსნის ლოგიკა არ არის დამოკიდებული ტექსტის მნიშვნელობასა თუ ზომაზე.

შესაძლო გაუმჯობესებები ამოხსნის იმპლემენტაციისას.

  • შეგვეძლო, გამოგვეყენებინა მონაცემთა სრუქტურა Map, რომლის key იქნებოდა char, ხოლო value - int. შემოყვანილ ტექსტზე იტერაციისას Map-ში კონკრეტული char-ის value-ს გავზრდიდით და საბოლოოდ Map-შივე გვექნებოდა შენახული სიმბოლოების რაოდენობები. Map-ის toString მეთოდის საშუალებით კი გამოვიტანდით სიმბოლოების რაოდენობას.