所以,这是我正在尝试的功能的一部分.
我不希望代码太复杂.
我有一个单词列表,例如
words = ['giraffe', 'elephant', 'ant', 'tiger', 'racoon', 'cat', 'hedgehog', 'mouse']
Run Code Online (Sandbox Code Playgroud)
单词链序列的概念是下一个单词以最后一个单词结尾的字母开头.
(编辑:每个单词不能多次使用.除此之外没有其他限制.)
我希望输出给出最长的单词链序列,在这种情况下是:
['hedgehog', 'giraffe', 'elephant', 'tiger', 'racoon']
Run Code Online (Sandbox Code Playgroud)
我不确定该怎么做,我尝试过不同的尝试.其中一个......
如果我们从列表中的特定单词开始,此代码正确地找到单词链,例如单词[0](所以'giraffe'):
words = ['giraffe', 'elephant', 'ant', 'tiger', 'racoon', 'cat', 'hedgehog', 'mouse']
word_chain = []
word_chain.append(words[0])
for word in words:
for char in word[0]:
if char == word_chain[-1][-1]:
word_chain.append(word)
print(word_chain)
Run Code Online (Sandbox Code Playgroud)
输出:
['giraffe', 'elephant', 'tiger', 'racoon']
Run Code Online (Sandbox Code Playgroud)
但是,我想找到最长的单词链(如上所述).
我的方法:所以,我尝试使用我编写和循环的上述工作代码,使用列表中的每个单词作为起点,找到每个单词[0],单词[1],单词[2]的单词链然后我尝试通过使用if语句找到最长的单词链,并将长度与前一个最长的链进行比较,但我无法正确完成它,我真的不知道这是怎么回事.
words = ['giraffe', 'elephant', 'ant', 'tiger', 'racoon', 'cat', 'hedgehog', 'mouse']
word_chain = []
max_length = 0
for starting_word_index in range(len(words) - …Run Code Online (Sandbox Code Playgroud) 有没有一种方法可以使用字典的索引位置(如果有的话)从字典中删除键,而不是使用实际的键(避免del d['key']使用例如,而是使用索引位置)从字典中删除键?
如果有的话,也不必理会这个问题的其余部分,因为这也是我在寻找的内容。
因此,作为我的例子,我有字典d,它使用列表作为值:
d = {'acd': ['cad'], 'abd': ['bad', 'dab']}
Run Code Online (Sandbox Code Playgroud)
我想从这样的字典中完全删除每个键,这些字典的值的项目长度小于2(因此,如果只有1个项目)。
因此,在此示例中,我想删除键,'acd'因为它的值列表只有1个项目['cad']。'abd'有2个项目['bad', 'dab'],所以我不想删除它-仅当它包含1个或更少的项目时。这本字典只是一个例子-我正在使用比这更大的版本,并且我需要它来删除所有单个项目值键。
我为测试编写了该代码,但是我不确定如何删除想要的密钥-或确定它们是什么。
d = {'acd': ['cad'], 'abd': ['bad', 'dab']}
index_pos = 0
for i in d.values():
#Testing and seeing stuff
print("pos:", index_pos)
print(i)
print(len(i))
if len(i) < 2:
del d[???]
#What do I do?
index_pos += 1
Run Code Online (Sandbox Code Playgroud)
我使用index_pos是因为我认为它可能有用,但不确定。
我知道我可以使用以下方法从字典中删除一个条目
del d['key']
Run Code Online (Sandbox Code Playgroud)
但是,如何避免使用键,例如改用索引位置,或者如何找出键,以便将其删除?
因此,这是检查日期范围内可用房间的方法的一部分,旨在返回可用房间号的 int [] 数组。
ArrayList roomNums = new ArrayList();
roomNums.toArray();
for (Room room: rooms){
int roomNumber = room.getRoomNumber();
if(room.getRoomType() == roomType && isAvailable(roomNumber, checkin, checkout)){ // This works fine, ignore it
roomNums.add(roomNumber);
}
}
return roomNums.toArray(); // Error here, return meant to be int [] type but it's java.lang.Obeject []
Run Code Online (Sandbox Code Playgroud)
错误发生在 roomNums.toArray() 的末尾
我看到别人做了这个衬里,它对他们有用,为什么不适合我?
roomNums 中的每个元素都是一个整数。(我认为)
打印包含可用房间的整数数组的最快和最简单的方法是什么?我是否需要创建一个循环,或者我可以用这个 .toArray() 一个衬垫或类似的东西做一些事情吗?
谢谢