//count 数据总长度 segments 要分成的份数 marksize 匹配特征的字符串的长度,segments要大于2,否则有问题
public Map<Integer, Integer> splitToServeral(int count, int segments,int markSize) {
Map<Integer,Integer> segmentMap=new TreeMap<>();
int quotient=count/segments;
int remainder=count%segments;
int quotientMarkSize=count/markSize/segments;
for(int segmentsInt=1;segmentsInt<segments+1;segmentsInt++){
if(segmentsInt==segments){
segmentMap.put((segmentsInt-1)*quotientMarkSize*markSize+1-markSize,(segmentsInt*quotient)+remainder);
}else if(segmentsInt==1){
segmentMap.put((segmentsInt-1)*quotient+1,quotientMarkSize*markSize);
}else{
segmentMap.put((segmentsInt-1)*quotientMarkSize*markSize+1-markSize,((segmentsInt-1)*quotientMarkSize*markSize+1)+quotientMarkSize*markSize-1);
}
}
return segmentMap;
}
output:
{1=300, 286=600, 586=900, 886=1200, 1186=1500, 1541=1852}
java-算法:将一定长度字符串均分为几等分
于 2022-08-27 22:14:17 首次发布