有名な "Coding Interview"を読んで始めました。Javaの文字列の重複文字を削除する
追加のバッファを使用せずに文字列内の重複文字を削除するアルゴリズムを設計し、コードを書き込んでください。 注:1つまたは2つの追加変数が問題ありません。 配列の余分なコピーはありません。
私はここで同様のトピックを見つけました:ここでの問題は、著者は、このための引数であることを、配列を使用したことである
public static void removeDuplicates(char[] str) {
if (str == null) return;
int len = str.length;
if (len < 2) return;
int tail = 1;
for (int i = 1; i < len; ++i) {
int j;
for (j = 0; j < tail; ++j) {
if (str[i] == str[j]) break;
}
if (j == tail) {
str[tail] = str[i];
++tail;
}
}
str[tail] = 0;
}
:著者によって与えられたRemove the duplicate characters in a string
ソリューションは、ということでした関数。だから私の質問です:どのようにSTRINGを引数としてアルゴリズムを書くことができますか?私は実際にここで配列を使用する方が簡単だと感じたので、エクササイズの難しさを避けるような感じです(私の意見では、私は新しくJava開発者です)。
どのようにこのようなアルゴリズムを書くことができますか?
質問者のために、あなたがそれらから文字を削除する可能性が言う、の文字列は変更可能だったと仮定してみましょう:あなたは、配列を使用するとあなたはその位置に同じ文字を取得するためにString.charAt(位置)を使用することができます[ポジション]。 – Vucko