-CoderOilStation(程序员编程助手科技股份责任有限公司)

 

 

sockMerchant

*

* different group pairs from integer arr

* unique pairs number

* if pairs number reverse into another pairs string, result is given same tag number

* return pairs number size

 

 

package com.tcs.controller;

 

import java.util.ArrayList;

import java.util.HashMap;

import java.util.HashSet;

import java.util.List;

import java.util.Map;

import java.util.Random;

import java.util.Set;

 

public class FinacialBusinessController {

public static void main(String[] args) {

 

}

/**

* sockMerchant

*

* different group pairs from integer arr

* unique pairs number

* if pairs number reverse into another pairs string, result is given same tag number

* return pairs number size

*

* constriant

*

* sock number size

* 1<=n<=100

*

* integer arr socks number image tag statics

*

* 1<=arr[i]<=100

*

* integer arr sock index edge

*

* where index i enclusure

* i: 0<=i<n

* @param n

* @param ar

* @return

*/

public static int sockMerchant(int n, List<Integer> ar) {

if(n<1 || n>100) {

return 0;

}

for(Integer intTemp : ar) {

if(intTemp<1 || intTemp>100) {

return 0;

}

}

Random random=new Random();

Set<String> hashSet=new HashSet<String>();

int count=0;

while(true){

int nextIntIndexFir = random.nextInt(n);

int nextIntIndexSec=random.nextInt(n);

if(nextIntIndexFir==nextIntIndexSec) {

continue;

}

Integer integerRandomEleFir = ar.get(nextIntIndexFir);

Integer integerRandomEleSec = ar.get(nextIntIndexSec);

StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append(integerRandomEleFir);

stringBuilder.append(integerRandomEleSec);

String string = stringBuilder.toString();

hashSet.add(string);

count++;

if(count>1000000) {

break;

}

}

Map<String, Integer> hashMap = new HashMap<String,Integer>();

for(String strTemp : hashSet) {

if(hashMap.containsKey(strTemp)) {

if(checkPairsStrIsHuiWenPattern(strTemp)) {

hashMap.put(strTemp, hashMap.get(strTemp)+1);

}

}else {

hashMap.put(strTemp, 1);

}

}

ArrayList<String> arrayList = new ArrayList<String>();

for (Map.Entry<String, Integer> entry : hashMap.entrySet()) {

String key = entry.getKey();

Integer val = entry.getValue();

arrayList.add(key);

}

boolean flagLevelNumLessThanTen=true;

for(Integer intTemp : ar) {

if(checkStrNumIsLessThanTen(String.valueOf(intTemp))) {

continue;

}else {

flagLevelNumLessThanTen=false;

}

}

int imageSameTagCount=0;

if(flagLevelNumLessThanTen) {

for(String strTemp : arrayList) {

if(checkStrIsRepeatChar(strTemp)) {

imageSameTagCount++;

}

}

return (arrayList.size()-imageSameTagCount)/2+imageSameTagCount;

}else {

return arrayList.size()/2;

}

}

public static boolean checkPairsStrIsHuiWenPattern(String srcPairStr) {

if(srcPairStr==null) {

return false;

}

String trim = srcPairStr.trim();

if(srcPairStr.isEmpty()) {

return false;

}

if(trim.length()!=2) {

return false;

}

for (int i = 0; i < trim.length(); i++) {

char charAt = trim.charAt(i);

char charAt2 = trim.charAt(i+1);

if(charAt!=charAt2) {

return false;

}

}

return true;

}

public static boolean checkStrIsHuiWenStr(String srcStr) {

if(srcStr==null) {

return false;

}

String srcStrTemp=srcStr.trim();

if(srcStrTemp.isEmpty()) {

return false;

}

char[] charArray = srcStrTemp.toCharArray();

for(int i=0;i<charArray.length;i++) {

char charFroIndexBeg = charArray[i];

char charFroIndexEnd = charArray[charArray.length-1-i];

if(!(i==(charArray.length-1-i))) {

continue;

}

if(!(charFroIndexBeg==charFroIndexEnd)) {

return false;

}

}

return true;

}

public static boolean checkStrIsRepeatChar(String srcStr) {

if(srcStr==null) {

return false;

}

String srcStrTemp=srcStr.trim();

if(srcStrTemp.isEmpty()) {

return false;

}

if(!checkStrIsHuiWenStr(srcStrTemp)) {

return false;

}

for(int i=0;i<srcStr.length();i++) {

char charTemp=srcStr.charAt(i);

if(i==srcStr.length()-1) {

break;

}

char charTempNextIndexPlus=srcStr.charAt(i+1);

if(!(charTemp==charTempNextIndexPlus)) {

return false;

}

}

return true;

}

public static boolean checkStrNumIsLessThanTen(String srcStr) {

if(srcStr==null) {

return false;

}

String srcStrTemp=srcStr.trim();

if(srcStrTemp.isEmpty()) {

return false;

}

Integer valueOf = Integer.valueOf(srcStrTemp);

if(valueOf>10 || valueOf<1) {

return false;

}

return true;

}

}

 

posted on 2025-07-19 18:12  CoderOilStation  阅读(253)  评论(0)    收藏  举报