このメソッドは、ターゲットで始まる最初の文字列のインデックスを返す必要があります。
ターゲットで始まる文字列がない場合は -1 を返します。
私の実装は機能しますが、すべてのバリエーションをカバーしているわけではありません。
コード:
public int getIndex(ArrayList<String> text, String target)
{
int i = 0;
int index = -1;
boolean found = false;
while (!found && i < text.size()) //supply condition
{
for (String s : text) {
if (s.contains(target)) {
found = true;
} else {
i++;
}
if (found) index = i;
}
}
return index;
}
テスト部分:
public static void main(String[] args)
{
ArrayList<String> cities = new ArrayList<String>();
cities.add("Chicago");
cities.add("Houston");
cities.add("San Jose");
cities.add("Seattle");
cities.add("Denver");
Finder finder = new Finder();
System.out.println(finder.getIndex(cities, "C"));
System.out.println("Expected: 0");
System.out.println(finder.getIndex(cities, "S"));
System.out.println("Expected: 2");
System.out.println(finder.getIndex(cities, "D"));
System.out.println("Expected: 4");
System.out.println(finder.getIndex(cities, "X"));
System.out.println("Expected: -1");
}
このコードにはカバレッジ50/50
入力があります。
4
- Expected: 0
3
- Expected: 2
4
+ Expected: 4
-1
+ Expected: -1
この問題を解決するには?