Maximize the String value by assigning values in range [1, 26] to each character
public class StringScore
{
public static int maxStrength(String s)
{
int[] frequency = new int[26];
int len = s.length();
for(int i = 0; i < len; i++)
{
char ch = s.charAt(i);
// lowercase character
if(ch >= 'a' && ch <= 'z')
{
frequency[ch - 'a']++;
}
// UPPERCASE CHARACTER
else if (ch >= 'A' && ch <= 'Z')
{
frequency[ch - 'A']++;
}
}
Arrays.sort(frequency);
int ans = 0;
for(int i = 25; i >= 0; i--)
{
if (frequency[i] > 0)
{
ans = ans + frequency[i] * (i +1);
}
else
break;
}
return ans;
}
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter your word: ");
}
}