我应该如何将这段代码转换为伪代码?
ArrayList<Integer> check = new ArrayList<Integer>();
ArrayList<Integer> dup = new ArrayList <Integer> ();
ArrayList<Integer> nonDup = new ArrayList <Integer> ();
for (int i : listA) {
nonDup.add(i);
}
for (int i : listB) {
nonDup.add(i);
}
for (int i : listA) {
check.add(i);
}
for (int i : listB) {
if (check.contains(i)) {
dup.add(i);
nonDup.removeAll(duplicates);
}
}
我不知道如何将for循环,add(),contains()和removeAll()方法转换为伪代码。
答案 0 :(得分:5)
PseudoCode可以是你想要的任何东西。由于您或其他人可以理解这些行的含义。
你可以把它变成简单的FOR(你的变量值开始)TO(你想要的结束)i ++ -
基本上是让人和你大多数人都明白它是For Loop
的东西答案 1 :(得分:4)
例如:
getNonDup(listA, listB):
nonDup = listA + listB
dup = an empty list
for each object i in listB do:
if listA contains i do:
add i to dup
remove i from nonDup
return nonDup
(我的伪代码风格与Python类似......)
在Java中,要只拥有唯一值,您只需将它们全部放在一个集合中:
Set<Integer> nonDup = new HashSet<Integer>(listA.addAll(listB));
答案 2 :(得分:4)
只是普通英语:
Initialize "check" as an empty (array-backed) list of integers.
Initialize "dup" as an empty (array-backed) list of integers.
Initialize "nonDup" as an empty (array-backed) list of integers.
For each integer in listA:
Add the integer to "nonDup".
End of loop.
For each integer in listB:
Add the integer to "nonDup".
End of loop.
For each integer in listA:
Add the integer to "check".
End of loop.
For each integer in listB:
If "check" contains the integer:
Add the integer to "dup".
Remove all integers in "dup" from "nonDup".
End of if.
End of loop.
通常你不需要打扰伪代码。它们真的没什么用处(除了吹牛的权利...... 我的意思是,帮助你的同行理解你的代码)并且它们不可执行。
答案 3 :(得分:3)
这样的事情怎么样:
for each element in list A
add element to list nonDup
它基本上只是纯文本,任何人都可以阅读。您可以为变量选择更多的发言名称。您也可以选择begin loop
和end loop
来显示循环的范围而不是身份验证。