2017-02-25 8 views
0

単語の繰り返し文字を検出して希望の結果を印刷するためのJavaコードを開発したいと思いますが、鉱山は繰り返し処理を継続しています。コードは次のとおりです。アイソグラム - 繰り返し文字のない単語

調整またはより良いコードがある場合は参考になります。

+0

これは、あなたの質問に答えられないかもしれないが、あなたのループは遅かれ早かれ –

+1

範囲外になりますされて「これは働いていない」*ない*有効な質問 –

+1

[Isogram](https://en.wikipedia.org/wiki/Isogram):*アイソグラム(「非パターンワード」とも呼ばれます)は、反復文字のない単語またはフレーズの論理的な用語です。* --- 2つの文字を見つけると、同じキャラクターの隣にある。その問題点:1)アイソグラムとは反対のもの。 2)文字以外の文字をチェックするのは間違っています。 3)定義はすべての文ではなく、* words *に適用され、入力したユーザーが単一の単語であるかどうかを確認しません。 4)「繰り返し」は「連続」を意味するものではありません。 'bob'は2つの' b'文字を持っているので、isogramではありません。 – Andreas

答えて

1
private static String isIsogram(String s){ 
     String[] ary = s.split(""); 
     Set<String> mySet = new HashSet<String>(Arrays.asList(ary)); 

     if(s.length() == mySet.size()){ 
      return "Yes!"; 
     }else{ 
      return "NO"; 
     } 
    } 
  1. 文字列から配列を作成します。

  2. 配列をリストに変換し、そのリストからセットを作成します。
    は一意の値のみを保持します。

  3. 設定されたサイズが最初の文字列の長さと等しい場合、それは アイソグラムです。 setが最初の文字列よりも小さい場合は、 の重複文字があります。

関連する問題