在挑战中,您需要找到由相同字母组成的最长子字符串的长度。例如,行“aaabbcaaaa”包含四个具有相同字母“aaa”,“bb”,“c”和“aaaa”的子串。最后一个子串是最长的子串,使其成为答案。输入:字符串。输出:Int。例如:
long_repeat('sdsffffse')== 4
long_repeat('ddvvrwwwrggg')== 3
这是我的代码:
def long_repeat(text):
text = list(text)
counter = []
c = []
for i in range(len(text)):
if text[0] == text[1]:
c.append(text.pop(0))
else:
counter.append(c)
c = []
print text # should be empty
print counter # should contain a lists of the repeated letters
输出:
>>>long_repeat('aaabbccc')
['a', 'b', 'b', 'c', 'c', 'c', 'c']
[['a', 'a'], [], [], [], [], [], []]
为什么循环在完成第一个字母时会停止,在这种情况下是'a'?
答案 0 :(得分:0)
当class KStateMachine(private val states: List<StateHandler>) {
private var currentState: KClass<out StateHandler>
private val handlers: HashMap<KClass<out StateHandler>, Int> = HashMap()
init {
currentState = states[0]::class
for (i in 0..states.size - 1) {
handlers.put(states[i]::class, i)
}
}
fun to(toState: KClass<out StateHandler>) {
var index = handlers.get(toState)
if (index != null) {
var oldState = currentState
currentState = toState
states.get(index).from(oldState)
} else {
throw RuntimeException("to state unknown")
}
}
abstract class StateHandler {
abstract fun from(fromState: KClass<out StateHandler>)
}
}
例如输入为“ab”时,您没有将a附加到c变量
另外,Python字符串没有“pop”方法因此它退出的原因(密切关注返回的错误)。
使用类似这样的东西来播放
test[0] != text[1]
答案 1 :(得分:0)
循环不会停止。您的model.add(Dense(N, activation='softmax'))
语句不会向前移动列表(此处没有else
)。顺便说一句,你的逻辑并不完全正确。而且,弹出角色然后每回合收集它并不是一个好主意。您可以使用整数记录所需的所有必要信息,包括位置,当前计数,最大计数等。