第一题昨晚睡觉突然想到,贴一份Java的,测试用例是过了,笔的时候没a出来,裂开 public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()){ String str = sc.next(); int n = str.length(); int[] dp = new int[n+1]; Arrays.fill(dp,Integer.MIN_VALUE); dp[0] = 0; for (int i = 1; i <= n; i++) { for (int j = i; j > 0 ; j--) { dp[i] = Math.max(dp[i],dp[j-1] + sum(str,j-1,i-1));// 枚举每个分组情况 } } System.out.println(dp[n]); } } // 统计字符串从start 到 end的得分 private static int sum(String str,int start,int end){ int[] ch = new int[26]; for (int i = start; i <= end; i++) { ch[str.charAt(i) - 'a']++; } int val = 0; for (int i : ch) { if (i == 0) continue; if ((i &; 1) == 0) val++; else val--; } return val; }
点赞 评论

相关推荐

七牛云头号黑子:人家是过度包装被看出来没过简历,你是包都不包啊兄弟
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务