首页 > 代码库 > 【HackerRank】 Game Of Thrones - I

【HackerRank】 Game Of Thrones - I

King Robert has 7 kingdoms under his rule. He gets to know from a raven that the Dothraki are going to wage a war against him soon. But, he knows the Dothraki need to cross the narrow river to enter his dynasty. There is only one bridge that connects both sides of the river which is sealed by a huge door.

The king wants to lock the door, so that, the Dothraki can‘t enter. But, to lock the door he needs a key that is an anagram of a certain palindrome string.

The king has a list of words. Help him figure out if any anagram of the words can be a palindrome or not?

Input Format
A single line which contains the input string

Constraints
1<=length of string <= 10^5Each character of the string is a lowercase english letter.

Output Format
A single line which contains YES/NO in capital letter of english alphabet.


题解:一个字符串能够通过变换变成一个回文串的充要条件是它里面最多有一种字母,在字符串里面出现的次数是奇数,其他种的字符在字符串里面出现的次数都是偶数。

 1 import java.io.*; 2 import java.util.*; 3 import java.text.*; 4 import java.math.*; 5 import java.util.regex.*; 6  7 public class Solution { 8  9     static String GameOfThronesI(String a){10         int[] count = new int[26];11         for(int i =0;i < a.length();i++)12             count[a.charAt(i)-‘a‘]++;13         int isOdd = 0;14         for(int i = 0;i < 26;i++)15             if(count[i]%2 != 0)16                 isOdd++;17         return isOdd <= 1?"YES":"NO";18     }19     public static void main(String[] args) {20         Scanner myScan = new Scanner(System.in);21         String inputString = myScan.nextLine();22        23         // Assign ans a value of s or no, depending on whether or not inputString satisfies the required condition24         System.out.println(GameOfThronesI(inputString));25         myScan.close();26     }27 }