程序员编程助手科技股份有限责任公司
package com.microsoft.acial.controller;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
import java.util.UUID;
public class MicorosoftAcialController {
public static void main(String[] args) {
System.out.println("Hello World!");
}
/**
* given an integer arr, find the longest subarray where the absolute difference between two
* elements is less than or equal to 1.
* constrains:
* 2<=n<=100
* 0<=a[i]<=100
* the answer will be >=2;
* @param a
* @return
*/
public static int pickingNumbers(List<Integer> a) {
if(a==null) {
return 0;
}
if(a.isEmpty()) {
return 0;
}
int size = a.size();
if(size<2 || size>100) {
return 0;
}
for (int i = 0; i < a.size(); i++) {
int intListEle=a.get(i);
if(intListEle<0 || intListEle>100) {
return 0;
}
}
StringBuilder strBuilder=new StringBuilder();
for (int i = 0; i < a.size(); i++) {
strBuilder.append(a.get(i));
}
String string = strBuilder.toString();
Random random = new Random();
Set<String> strHashSet=new LinkedHashSet<String>();
List<CustomerBuilderSubStr> subStrList=new ArrayList<CustomerBuilderSubStr>();
int count=0;
while(true) {
int randomIndexBegin=random.nextInt(string.length());
int randomIndexEnd=random.nextInt(string.length());
int randomIndexEndPlus=randomIndexEnd+1;
if(randomIndexBegin<randomIndexEnd) {
String substring = string.substring(randomIndexBegin, randomIndexEndPlus);
strHashSet.add(substring);
CustomerBuilderSubStr subStrBuilder=new CustomerBuilderSubStr();
subStrBuilder.setId(UUID.randomUUID().toString());
subStrBuilder.setSrcStr(string);
subStrBuilder.setSubStr(substring);
subStrList.add(subStrBuilder);
}
count++;
if(count>1000000) {
break;
}
}
int count1=0;
Random random1=new Random();
Set<String> strHashSet1=new LinkedHashSet<String>();
while(true) {
strHashSet.forEach(e->{
int randomIndexSubStrBegin=random1.nextInt(e.length());
int randomIndexPairsEnd=random1.nextInt(e.length());
char charAt = e.charAt(randomIndexSubStrBegin);
char charAt1 = e.charAt(randomIndexPairsEnd);
String string1 = new String(charAt+""+charAt1);
strHashSet1.add(string1);
});
count1++;
if(count1>1000000) {
break;
}
}
Random random2=new Random();
List<HashSet<String>> listStrPairsSet=new ArrayList<HashSet<String>>();
int count2=0;
for(String e : strHashSet1) {
Set<String> strPairsHashSet2=new LinkedHashSet<String>();
while(true) {
int randomPairsIndexBegin=random2.nextInt(strHashSet1.size());
int randomPairsIndexEnd=random2.nextInt(strHashSet1.size());
char pairsFirstEle=e.charAt(randomPairsIndexBegin);
char pairsSecEle=e.charAt(randomPairsIndexEnd);
String string1 = new String(pairsFirstEle+pairsSecEle+"");
strPairsHashSet2.add(string1);
count2++;
if(count2>1000000) {
break;
}
}
listStrPairsSet.add((HashSet<String>) strPairsHashSet2);
}
for(Set hashSet : listStrPairsSet) {
if(checkListBlockEleIsRightData(hashSet)) {
}
}
return 0;
}
public static Boolean checkListBlockEleIsRightData(Set<String> hashSet) {
if(hashSet==null) {
return null;
}
if(hashSet.isEmpty()) {
return null;
}
for(String strTemp : hashSet) {
char firstElePairs=strTemp.charAt(0);
char secElePairs=strTemp.charAt(1);
Integer intFirstElePairs=Integer.valueOf(firstElePairs);
Integer intSecElePairs=Integer.valueOf(secElePairs);
int intValRet=intFirstElePairs-intSecElePairs;
int absIntValRet=Math.abs(intValRet);
if(!((absIntValRet==0) || (absIntValRet==1))) {
return false;
}
}
return true;
}
}
class CustomerBuilderSubStr{
private String id;
private String srcStr;
private String subStr;
private Set<String> subStrPairs;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSrcStr() {
return srcStr;
}
public void setSrcStr(String srcStr) {
this.srcStr = srcStr;
}
public String getSubStr() {
return subStr;
}
public void setSubStr(String subStr) {
this.subStr = subStr;
}
public Set<String> getSubStrPairs() {
return subStrPairs;
}
public void setSubStrPairs(Set<String> subStrPairs) {
this.subStrPairs = subStrPairs;
}
}