public class Solution { public int LongestPalindrome(string s) { if(string.IsNullOrWhiteSpace(s)){ return 0; } var dict = new Dictionary<char, int>(); var len = s.Length; for (var i = 0;i < len; i++){ if(!dict.ContainsKey(s[i])){ dict.Add(s[i], 1); } else{ dict[s[i]] ++; } } int maxLen = 0; bool hasMid = false; foreach (var k in dict.Keys){ if(dict[k] % 2 == 0){ maxLen += dict[k]; }else{ hasMid = true; if(dict[k] - 1 > 1){ maxLen += dict[k] - 1; } } } if(hasMid){ maxLen ++; } return maxLen; }}
新闻热点
疑难解答