Given the string, find the longest palindrom you can form from it
/**
* @author gullele.com
*/
public class LongestPalindrom {
public static void main(String[] args) {
LongestPalindrom longest = new LongestPalindrom();
System.out.println(longest.longest("zzbmbmbdmm"));
}
public String longest(String string) {
if (string.length() == 0 || string == null) {
return "";
}
StringBuffer palindrom = new StringBuffer();
Map charBag = new HashMap();
for (Character c : string.toCharArray()) {
int totalChar = charBag.get(c) != null ? charBag.get(c) : 0;
if ((totalChar + 1) % 2 == 0) {
palindrom.append(c);
palindrom = palindrom.insert(0, c);
charBag.remove(c);
continue;
}
charBag.put(c, ++totalChar);
}
if (charBag.size() > 0) {
Iterator it = charBag.entrySet().iterator();
Map.Entry pair = (Map.Entry)it.next();
String c = pair.getKey().toString();
palindrom.insert(palindrom.length()/2, c);
}
return palindrom.toString();
}
}
The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path
String Ordered Permutation Algorithm Problem
setting JAVA_HOME on mac osx
hello world weblogic – hello world tutorial on weblogic
Passing composite object parameter to jersey in Restful Java web