如何校验sequence中receiveList元素是否全部早于shipList元素出现
列表顺序校验实现
校验规则
sequence中所有属于receiveList的元素,必须全部出现在任意一个shipList元素之前。若存在任一receiveList元素出现在shipList元素之后,则判定不符合规则。
输入示例
receiveList = [1,2,3] shipList = [4,5,6] sequence = [3,1,6,2,4,5]
校验结果
raise('不可行的解决方案')
原因:sequence中的元素2属于receiveList,但它出现在shipList元素6之后,违反了校验规则。
Python实现代码
def validate_sequence(receive_list, ship_list, sequence): ship_element_seen = False for item in sequence: if item in ship_list: ship_element_seen = True # 若已出现过船运元素,又遇到收货元素则抛出异常 if ship_element_seen and item in receive_list: raise ValueError('不可行的解决方案') return True # 测试示例代码 receiveList = [1,2,3] shipList = [4,5,6] sequence = [3,1,6,2,4,5] validate_sequence(receiveList, shipList, sequence)
内容的提问来源于stack exchange,提问作者Jess
相关产品推荐
相关产品推荐

