تمرین اسم ها کدکاپ
در این نوشته تمرین “اسم ها” که در مسابقه ی کدکاپ آمده است را با زبان برنامه نویسی جاوا حل خواهیم کرد؛ با ما همراه باشید.
سوال :
کریم یک کودک ۵ ساله است که به اسم متغیرها خیلی توجه میکند.
کریم یک پدربزرگ دارد که از «واج آرایی» متنفر است. او اسمهایی را دوست دارد که در آنها تعداد حرفهای مختلف زیاد باشد.
برای مثال karim پنج حرف مختلف (همهی حرف هایش مختلفند) و abbas سه حرف مختلف دارد. (حرف های a و b و s)
کریم در انتخاب اسم برای یک متغیر در کدش به مشکل خورده و بین n اسم موجود شک دارد.
او این اسامی را به پدربزرگش میدهد تا بهترین اسم را برگزیند.
میدانیم که پدربزرگ اسمی را انتخاب میکند که بیشترین تعداد حروف مختلف را دارد.
با داشتن این اسامی، بگویید که تعداد حروف مختلف در اسم انتخابی پدربزرگ چقدر خواهد بود.
ورودی :
خط اول ورودی شامل عدد n است.
در 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); } }
ابتدا ورودی ها گرفته سپس با یک حلقه به تعداد اسم هایی که وارد شده است باید آنها را چک کنیم؛
حروف الفبا را درون یک آرایه تعریف می کنیم و سپس با کلمات داخل نام ها بررسی می کنیم و هر بار تکرار هر کلمه را یکبار حساب می کنیم.
در آخر تعداد حروف را نگه داری می کنیم؛
در آخر هر بار اجرای حلقه بررسی می کنیم.
نام فعلی حروف بیشتری دارد یا خیر و اگر بیشتر بود تعداد حروف آن را نگهداری و طبق همین روال تا آخر نگهداری کرده و نمایش می دهیم.
موفق باشید.
ارسال پاسخ