의 index
:
public class SO5890087 {
Map<Character, List<Position>> pmaps =
new HashMap<Character, List<Position>>();
public static void main(String[] args) {
String[][] strings = new String[][] {
{ "r", "x", "f", "b", "e", "a", "r" },
{ "a", "r", "q", "b", "o", "y", "t" },
{ "s", "q", "z", "b", "s", "b", "r" } };
List<List<String>> sss = new ArrayList<List<String>>();
for (int i = 0; i < strings.length; i++)
sss.add(new ArrayList<String>(Arrays.asList(strings[i])));
SO5890087 finder = new SO5890087(sss);
List<Position> positions = finder.findWord("bob");
for (Position position : positions)
System.out.println(position);
}
public SO5890087(List<List<String>> sss) {
for (int i = 0; i < sss.size(); i++) {
List<String> ss = sss.get(i);
for (int j = 0; j < ss.size(); j++) {
Character c = ss.get(j).charAt(0);
if (! pmaps.containsKey(c))
pmaps.put(c, new ArrayList<Position>());
pmaps.get(c).add(new Position(i, j));
}
}
}
public List<Position> findWord(String word) {
List<Position> result = new ArrayList<Position>();
char[] cs = word.toCharArray();
for (int i = 0; i < cs.length; i++) {
if (pmaps.containsKey(cs[i])) {
result.add(pmaps.get(cs[i]).get(0));
}
else {
result.clear();
break;
}
}
return result;
}
class Position {
int list;
int index;
public Position(int list, int index) {
this.list = list;
this.index = index;
}
public int getList() {
return list;
}
public int getIndex() {
return index;
}
@Override
public String toString() {
return "Position [list=" + list + ", index=" + index + "]";
}
}
}
출력 "bob"
에 대한 :
Position [list=0, index=3]
Position [list=1, index=4]
Position [list=0, index=3]
노트 다음은 예입니다 티 IME 나는 키가 문자이며, 값은, Position
객체의 목록입니다 말해 각이있는리스트를 사용하며 단어를 찾을 때 나는 그 문자
구문 오류입니다. 만약 의사 코드 표기법이라면'|'의 의미를 설명해주십시오. – delnan
이 목록 목록은 타블로이드와 슈퍼마켓 여성 잡지 사이의 단어 검색 문제 책과 같은 글자 표를 나타냅니다. – sigfpe
"etc"는 몇 가지 중요한 세부 사항을 제외합니다. 우리는 외부'List'에서 내부'List's의 순서가 중요하다고 가정할까요? 아마도 단어의 연속 문자는 동일하거나 인접한 하위 목록에 나타나야합니다. 상대적인 명령이 뒤바뀔 수 있습니까?마찬가지로 내부 'List's에있는 문자의 순서도 중요하다고 가정해야합니까? – eggyal