من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

تمرین اسم‌ها – کدکاپ 4 + جاوا

تمرین اسم‌ها - کدکاپ 4 + جاوا
تمرین اسم‌ها - کدکاپ 4 + جاوا

تمرین اسم‌ها – کدکاپ 4 + جاوا

در این نوشته تمرین “اسم‌ها” که در مسابقه‌ی کدکاپ آمده است را با زبان برنامه نویسی جاوا حل خواهیم کرد.

 

تمرین اسم‌ها – کدکاپ 4 + جاوا

سوال

کریم یک کودک ۵ ساله است که به اسم متغیرها خیلی توجه می‌کند. کریم یک پدربزرگ دارد که از «واج آرایی» متنفر است. او اسم‌هایی را دوست دارد که در آن‌ها تعداد حرف‌های مختلف زیاد هست. برای مثال karim پنج حرف مختلف (همه‌ی حرف‌هایش مختلف‌ند) و abbas سه حرف مختلف دارد. (حرف‌های a و b و s) کریم در انتخاب اسم برای یک متغیر در کدش به مشکل خورده و بین n اسم موجود شک دارد. او این اسامی را به پدربزرگش می‌دهد تا بهترین اسم را برگزیند. می‌دانیم که پدربزرگ اسمی را انتخاب می‌کند که بیش‌ترین تعداد حروف مختلف را دارد. با داشتن این اسامی، بگویید که تعداد حروف مختلف در اسم انتخابی پدربزرگ چقدر خواهد بود.

ورودی

خط اول ورودی شامل عدد است. در  خط بعدی هر خط شامل یک اسم پیشنهادی است. هر اسم رشته‌ای با حداکثر ۲۰ حرف از حروف کوچک انگلیسی است.

خروجی

در تنها خط خروجی یک عدد چاپ کنید که برابر تعداد حروف مختلف در اسم انتخابی خواهد بود.

مثال:

input :
4
ali
karim
abbas
mohammad

output:
5

کد + حل:

import java.util.Scanner;

public class Main {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        int num = sc.nextInt();
        String currentName;
        int tempCount=0;
        int counter=0;
        int maxCounter=0;
        int tempLength=0;
        char[] ch = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y' ,'z'};
        for (int i=0; i<=num; i++)
        {
            currentName = sc.nextLine();
            tempLength = currentName.length();
            for(int j=0; j<=25;j++)
            {
                tempCount = currentName.replace(String.valueOf(ch[j]), "").length();
                if(tempCount==tempLength)
                    continue;
                counter++;
                tempCount=0;
            }
            if(counter>maxCounter)
                maxCounter = counter;
            counter=0;
        }
        System.out.println(maxCounter);
    }
}

ابتدا ورودی‌ها گرفته سپس با یک حلقه به تعداد اسم‌هایی که وارد شده است باید آن‌ها را چک کنیم؛ حروف الفبا را درون یک آرایه تعریف می‌کنیم و سپس با کلمات داخل نام‌ها بررسی می‌کنیم و هر بار تکرار هر کلمه را یکبار حساب می‌کنیم. در آخر تعداد حروف را نگه داری می‌کنیم؛ در آخر هر بار اجرای حلقه بررسی می‌کنیم. نام فعلی حروف بیش‌تری دارد یا خیر و اگر بیش‌تر بود تعداد حروف آن را نگهداری و طبق همین روال تا آخر نگهداری کرده و نمایش می‌دهیم.

منبع سوال: سایت کوئرا

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]