Write a program to check if a given string is a palindrome and contains at least two different vowels.
Note: Case Insensitive while considering vowel, i.e a & A are the same vowels, But Case sensitive while considering palindrome i.e abc CbA are not palindromes.
Input and Output Format
- Input consists of a string with a maximum size of 100 characters.
- Output consists of a single Integer.
Refer sample output for formatting specifications
Sample Input 1:
abceecba
Sample Output 1:
1
Sample Input 2:
abcd
Sample Output 2:
-1
Java program to check palindrome string at least two different vowels
Following are the steps to check palindrome string that contains at least two different vowels:
- Input a string from the user.
- Call display() method with the input string.
- Inside the method, initialized the string buffer with the specified string.
- Declare and initailaize variable k with 0.
- Create a LinkedHashSet of characters. (to store unique element)
- Now, reverse the string in the string buffer.
- Compare the input string with the string in the string buffer and if it is equal, then
- Convert it to lower case.
- retrieve each character and add it to LinkedHashSet.
- Now, iterate over the LinkedHashSet and perform the following steps
- Fetch each character and check if that character is a vowel. If it is a vowel increment k value.
- Now, if the value of k is greater than 2, then return 1.
- Otherwise, return -1.
- End of the program.
package testCases;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Scanner;
public class MainJava {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
System.out.println(display(s));
}
public static int display(String s) {
StringBuffer sb = new StringBuffer(s);
int k = 0;
LinkedHashSet<Character> l1 = new LinkedHashSet<Character>();
String s2 = sb.reverse().toString();
if (s2.equals(s)) {
String s3 = s2.toLowerCase();
for (int i = 0; i < s3.length(); i++) {
l1.add(s3.charAt(i));
}
Iterator<Character> it = l1.iterator();
while (it.hasNext()) {
char a = it.next();
if (a == 'a' || a == 'e' || a == 'i' || a == 'o' || a == 'u')
k++;
}
}
if (k >= 2)
return 1;
else
return -1;
}
}
Output

Convert String into a palindrome string in Java
Obtain a string from the user and check if the string is able to convert into a palindrome by changing only one character. If it is possible then print “No Changes required” else print “Changes required”.
Input and Output Format
- Input consists of a string with a maximum size of 100 characters.
- Output consists of a string
Refer sample output for formatting specifications
Sample Input 1:
abc
Sample Output 1:
No Changed required
Sample Input 2:
abccca
Sample Output 2:
Changed is required
Program to convert into a palindrome by changing only one character
- Input a string from the user.
- Call the display() method with the input string.
- Inside the method, change the string to lowercase.
- Now, iterate over it and check character at i and ((s.length()/2)-i-1).
- If they are not the same, then increment the count.
- If the count is greater than 1 then print “Change is required” otherwise “No change required”.
package com.testcases;
import java.util.Scanner;
public class Program {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
display(str);
}
private static void display(String str) {
String s = str.toLowerCase();
int count = 0;
for(int i = 0;i < s.length()/2;i++){
if(s.charAt(i)!=s.charAt((s.length()/2)-i-1))
count++;
}
if(count>=1)
System.out.println("Changed is required");
else
System.out.println("No changed required");
}
}
Output

Thus, in this way, we wrote a java program to check palindrome string at least two different vowels.