0

次の繰り返されない文字を返すためのプログラムを作成する必要があります..

ex私は...を与え、それは出力を...tweet
として返す必要がありますw

public class str_next {

    public static void main(String args[]) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter the string");
        String s = br.readLine();
        revString(s);
    }

    static char revString(String str) {
        int i = 0;
        int j;
        int n = str.length();
        for (i = 0; i < n; i++) {
            for (j = i + 1; j < n; j++) {
                char c = str.charAt(i);
                char d = str.charAt(j);
                if (c != d) {
                    System.out.print(d);
                }
            }
        }
    }
}

.. return ステートメントがありません.. というエラーが発生します。

誰か教えてください..どうすればそのような問題を解決できますか..どこが間違っていますか..?

4

9 に答える 9

0

各文字を HashSet に追加し、hashset.add() が true を返すかどうかを確認し、false を返す場合は、ハッシュセットから文字を削除します。次に、ハッシュセットの最初の値を取得すると、最初の繰り返されない文字が得られます。 アルゴリズム:

  for(i=0;i<str.length;i++)
  {
    HashSet hashSet=new HashSet<>()
     if(!hashSet.add(str[i))
         hashSet.remove(str[i])
    }
  hashset.get(0) will give the non repeated character.
于 2015-11-23T12:34:12.383 に答える
0

returnステートメントを書いていません。return ;

于 2013-10-10T04:44:58.197 に答える
0

Java で for ループのみを使用する.....それは非常に簡単です....Java ではコレクションなしで実行できます..試してみてください....

public class FirstNonRepeatedString {

public static void main(String args[]) {


    String input = "tweet";
    char process[] = input.toCharArray();
    boolean status = false;
    int index = 0;
    for (int i = 0; i < process.length; i++) {
        for (int j = 0; j < process.length; j++) {

            if (i == j) {
                continue;
            } else {
                if (process[i] == process[j]) {
                    status = false;
                    break;
                } else {
                    status = true;
                    index = i;
                }
            }

        }
         if (status) {
        System.out.println("First non-repeated string is : " + process[index] + " INDEX " + index);
        break;
    } 
    }
}

}

于 2016-06-18T09:17:51.073 に答える
0

revString(String str) の戻り値の型を char として記述しましたが、文字は返されません。その戻り型を void に変更するか、改行 d; を追加します。メソッドへ

于 2013-10-10T04:46:12.553 に答える
0

プログラムは次のようになります。

import java.io.*;

public class str_next {

    public static void main(String args[]) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter the string");
        String s = br.readLine();
        revString(s);
    }

    static char revString(String str) {
        int i = 0;
        int j;
        int n = str.length();
        for (i = 0; i < n; i++) {
            for (j = i + 1; j < n; j++) {
                char c = str.charAt(i);
                char d = str.charAt(j);
                if (c != d) {
                    System.out.print(d);
                }
            }
        }
        return 0;
    }
}
于 2013-10-10T05:12:59.903 に答える