자바 알고리즘 기초 - 문자열 일치 문제

1527 단어 자바알고리즘
문제 설명: 문자열 strOriginal (전체 영문 소문 자로 구성) 을 지정 하고 문자열 strDesc 를 임의로 주 며 strDesc 가 strOriginal 의 임 의 정렬 인지 여 부 를 판단 합 니 다. 중복 에 주의 하 십시오.예 를 들 어 주어진 문자열 이 adcbae 이면 dacbea, cabda 는 모두 일치 하지만 dacbe, cabedg 는 일치 하지 않 습 니 다.
코드 구현:

public class StringMatchTest
{
	public static boolean testStr(String strOriginal,String strDesc)
	{
		if(strOriginal.equals("") || strDesc.equals(""))
			return false;
		if(strOriginal.equals(strDesc))
			return true;

		//              
		if(strOriginal.length() != strDesc.length())
		{
			return false;
		}
		
		//      hash    
		int[] hashOriginal = new int[26];
		int[] hashDesc = new int[26];
		
		//          hash 
		for(int index = 0; index < strOriginal.length(); index++)
		{
			int indexOriginal,indexDesc;
			
			indexOriginal = strOriginal.charAt(index) - 'a';
			hashOriginal[indexOriginal] += 1;
			
			indexDesc = strDesc.charAt(index) - 'a';
			hashDesc[indexDesc] += 1;
		}
		
		return Arrays.equals(hashOriginal, hashDesc);
	}
	
	public static void main(String[] args)
	{
		String str1 = "";
		String str2 = "";
		
		if(testStr(str1, str2))
		{
			System.out.println("    !");
		}else {
			System.out.println("    !");
		}
	}
}


좋은 웹페이지 즐겨찾기