文字列が異所性単語であるかどうかを確認


S =「アナグラム」、T = 「nagaram」
異所性の言葉に属し、同じ長さ、同じ文字を含む、各文字の出現頻度が同じであるが、単に異なる順序で
S =「ラット」、T = 「車
S 『R』はTの中にはないので、これは、異所性の言葉に属さない
:アイデア
偽と比較して、同じ文字列の同じ長さかどうかを確認するために最初のない
同一の各文字の出現頻度は、使用することができるかどうかを2テーブルをハッシュします。26 INTは配列の長さを適用します。最初のトラバーサル文字列s次に、各文字列を
カウントしながら、屈折率の点で配列に格納され
た値から1を引いた配列に対応する文字に続く3トラバーサル文字列tを、場合によってはその後、0より小さい発生した場合それは一致しない
コードを次のとおりです。

INT isAnagram(CHAR *は、チャー* tの)
{ 
	INT FREQ [26]。
	int型I、J、len_s、len_t、値; 
	len_s = STRLEN(S)。
	len_t = STRLEN(T)。
	値= 0。
	memset(FREQ、0、26 * 4)。
	(もし!len_s = len_t)
		リターン-1; 
	用(i = 0; iはlen_sを<; iは++)
	{ 
		FREQ [*(S + I) - ''] + = 1; 
	} 
	(j = 0; J <len_t; J ++)用
	{ 
		FREQ [*(T + J) - 'A'] - = 1; 
		値= FREQ [*(T + J) - 'A']。
		IF(値<0)
			-1を返します。
	} 
	1を返します。

}

  

おすすめ

転載: www.cnblogs.com/zhanghongfeng/p/11539970.html