STRING
PALINDROME
public class Solution {
public int isPalindrome(String A) {
A=A.toLowerCase();
StringBuilder b=new StringBuilder();
for(int i=0;i<A.length();i++){
if(Character.isDigit(A.charAt(i))||Character.isLetter(A.charAt(i))){
b.append(A.charAt(i));
}
}
int n=b.length()-1;
for(int i=0;i<b.length()/2;i++){
if(b.charAt(i)!=b.charAt(n-i)) return 0;
}
return 1;
}
}
Vowel and Consonant Substrings!
public class Solution {
public int solve(String A) {
int vowels = 0;
int consonant = 0;
int n = A.length();
for(int i = 0; i<n; i++){
if(isVowel(A.charAt(i))){
vowels++;
}
else{
consonant++;
}
}
return (vowels*consonant)%(1000000007);
}
public boolean isVowel(char c){
if(c== 'a' || c== 'e' || c== 'i' || c== 'o' || c== 'u'){
return true;
}
return false;
}
}
Remove Consecutive Characters
public class Solution {
public String solve(String A, int B) {
int i=0;
int n=A.length();
StringBuilder b=new StringBuilder();
while(i<n){
int j=i;
while(j<n&& A.charAt(i)==A.charAt(j)){
j++;
}
int len=j-i;
if(len!=B){
b.append(A.substring(i,j));
}
i=j;
}
return b.toString();
}
}
Serialize
public class Solution {
public String serialize(String[] A) {
StringBuilder b=new StringBuilder();
for(int i=0;i<A.length;i++){
b.append(A[i]);
b.append(A[i].length());
b.append('~');
}
return b.toString();
}
}
Deserialize
public class Solution {
public String[] deserialize(String A) {
A=A.toLowerCase();
String[] res=A.split("~");
int n=res.length;
for(int i=0;i<n;i++){
while(res[i].charAt(res[i].length()-1)>='0' && res[i].charAt(res[i].length()-1)<='9'){
res[i]=res[i].substring(0,res[i].length()-1);
}
}
return res;
}
}
String And Its Frequency
public class Solution {
public String solve(String A) {
int n=A.length();
int a[]=new int[26];
for(int i=0;i<n;i++){
a[A.charAt(i)-'a']++;
}
String ans="";
for(int i=0;i<n;i++){
char c=A.charAt(i);
if(a[c-'a']!=-1){
ans+=c;
ans+=a[c-'a'];
a[c-'a']=-1;
}
}
return ans;
}
}
Bulls and Cows
public class Solution {
public String solve(String A, String B) {
int bulls=0,cows=0;
int[] n=new int[10];
for (int i=0;i<A.length();i++){
int s=A.charAt(i)-'0';
int g=B.charAt(i)-'0';
if(s==g){
bulls++;
}else{
if(n[s]++<0) cows++;
if(n[g]-->0) cows++;
}
}
String s=bulls+"A"+cows+"B";
return s;
}
}
Self Permutation
public class Solution {
public int permuteStrings(String A, String B) {
if(A.length()!=B.length()){
return 0;
}
char arrA[]=A.toCharArray();
char arrB[]=B.toCharArray();
Arrays.sort(arrA);
Arrays.sort(arrB);
for(int i=0;i<arrA.length;i++){
if(arrA[i]!=arrB[i]){
return 0;
}
}
return 1;
}
}
Longest Common Prefix
public class Solution {
public String longestCommonPrefix(String[] A) {
String prefix=A[0];
for(int i=1;i<A.length;i++){
while(A[i].indexOf(prefix)!=0){
prefix=prefix.substring(0,prefix.length()-1);
if(prefix.isEmpty()){
return "";
}
}
}
return prefix;
}
}
Count And Say
public class Solution {
public String countAndSay(int A) {
if(A<=0){
return "";
}
String result="1";
for(int i=1;i<A;i++){
StringBuilder b=new StringBuilder();
char prevChar=result.charAt(0);
int count=1;
for(int j=1;j<result.length();j++){
char currChar=result.charAt(j);
if(currChar==prevChar){
count++;
}else{
b.append(count).append(prevChar);
prevChar=currChar;
count=1;
}
}
b.append(count).append(prevChar);
result=b.toString();
}
return result;
}
}
Amazing Subarrays
public class Solution {
public int solve(String A) {
int mod=10003;
int count=0;
for(int i=0;i<A.length();i++){
char c=A.charAt(i);
if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u'||c=='A'||c=='E'||c=='I'||c=='O'||c=='U'){
count=(count+A.length()-i) % mod;
}
}
return count;
}
}
Convert to Palindrome
public class Solution {
public int solve(String A) {
int left=0,right=A.length()-1;
while(left<right){
if(A.charAt(left)!=A.charAt(right)){
return isPalindrome(A.substring(left+1,right+1))||isPalindrome(A.substring(left,right))? 1 : 0;
}
left++;
right--;
}
return 1;
}
public boolean isPalindrome(String S){
int left=0,right=S.length()-1;
while(left<right){
if(S.charAt(left)!=S.charAt(right)){
return false;
}
left++;
right--;
}
return true;
}
}
Minimum Appends for Palindrome!
public class Solution {
public int solve(String A) {
for(int i=0;i<A.length();i++){
if(isPalindrome(i,A)){
return i;
}
}
return A.length();
}
public boolean isPalindrome(Integer index,String A){
int i=index;
int j=A.length()-1;
while(i<=j){
if(A.charAt(i)!=A.charAt(j)){
return false;
}
++i;
--j;
}
return true;
}
}
Comments
Post a Comment