The problem requires checking if three given lines of text form a Haiku. A Haiku
consists of three lines with 5, 7, and 5 syllables
respectively. In this problem, syllables are represented by
vowels (a, e, i, o, u)
.
We
count the number of vowels
in each line and
check if they match
the
required pattern. If the counts are 5, 7, and 5, the output
is 'YES'; otherwise, it
is 'NO'.
import java.util.Scanner; public class CF { public static boolean isVowel(Character ch){ if(ch.equals('a') || ch.equals('e') || ch.equals('i') || ch.equals('o') || ch.equals('u')) return true; else return false; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str1 = sc.nextLine(); int cnt1=0; for(int i=0;i<str1.length();i++){ if(isVowel(str1.charAt(i))){ cnt1++; } } String str2 = sc.nextLine(); int cnt2=0; for(int i=0;i<str2.length();i++){ if(isVowel(str2.charAt(i))){ cnt2++; } } String str3 = sc.nextLine(); int cnt3=0; for(int i=0;i<str3.length();i++){ if(isVowel(str3.charAt(i))){ cnt3++; } } if(cnt1==5 && cnt2==7 && cnt3==5) System.out.println("YES"); else System.out.println("NO"); } }
The algorithm iterates through each character of the three input strings, making it linear in
time complexity, where 'n'
is the total
number of characters.
The algorithm uses a constant amount of extra space, regardless of the input size.