我必须使用Java信号量解决这个问题,但我不知道如何,我找不到任何相关的Java资料.这是怎么回事:
有各种各样的线索:男人和女人.两者都想使用数量为BATHROOM_SIZE的相同资源.5条规则:
1女,1人,5女,5人
5women1men,5men1women,2men2women,5men5women.
自从星期一以来我一直在努力使它成功,现在我的想法已经用完了.
所以我的任务是编写实现BathroomInterface的Bathroom.java类:
public interface BathroomInterface {
public static final int BATHROOM_SIZE = 3; //3 is just example
void manEnter();
void manExit();
void womanEnter();
void womanExit();
}
Run Code Online (Sandbox Code Playgroud)
在系统中有许多男人和女人的线程像这样工作:
for(int i = 0; i < n; i++) {
bathroom.manEnter();
//uses bathroom random amount of time
bathroom.manExit();
}
for(int i = 0; i < m; i++) {
bathroom.womanEnter();
//uses bathroom random amount of time
bathroom.womanExit();
}
Run Code Online (Sandbox Code Playgroud)
我也有 …
给我一个字符串,即"CPHBDZ".通过(按此顺序)将字母插入BST,我将:
C
/ \
B P
/ \
H Z
/
D
Run Code Online (Sandbox Code Playgroud)
如果我们将字符串的顺序更改为"CBPHDZ",我们将得到相同的树.我必须找到并列出提供相同BST的输入字符串的所有排列.我想出了如何计算这些排列的数量,但我无法弄清楚实际找到它们的任何算法.