import java.util.*; public class Solution { /** * * @param k int整型 表示最多的操作次数 * @param s string字符串 表示一个仅包含小写字母的字符串 * @return int整型 */ public int string2 (int k, String s) { // write code here int l = s.length(); int []a= new int [l]; for(int i =0 ; i < l; i ++){ a[i] = s.charAt(i)-'a'; } Arrays.sort(a); int max = 0; int y = k; for(int i = 0; i <l; i++){ y = k;int ans = 1; int j = 1;int t = 1; while(i-j>=0&&i+t<l){ if(a[i]-a[i-j] > a[i+t]-a[i]){ y -= a[i+t]-a[i]; t ++; }else{ y -= a[i]-a[i-j]; j++; } if(y <0) break; ans ++; } while(i - j >=0){ y -= a[i] - a[i-j]; j ++; if(y <0) break; ans ++; } while(i+t <l){ y-=a[i+t]-a[i]; t ++; if(y <0) break; ans ++; } max = Math.max(ans,max); } return max; } }
全部评论
(0) 回帖