我正在解决有关hackerrank的挑战,有一个解决方案我不明白python为什么不给我一个错误(我知道为什么会打扰,但我想理解) 挑战:https://www.hackerrank.com/challenges/the-birthday-bar/problem
因此,例如,在这里,您有一个数组public static void CreateTable () throws SQLException
{
try {
Connection con = DBConnection();
String statement = "CREATE TABLE IF NOT EXISTS tablename(id INT NOT NULL AUTO_INCREMENT, first VARCHAR(225), last VARCHAR(225) PRIMARY KEY(id)";
PreparedStatement create = con.prepareStatement(statement);
create.executeUpdate();
System.out.println("Table created...!");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("Could not create table...!");
}
,长度为s=[1,2,1,3,2]
和值m=2
。
我的解决方案应该是d=3
,因为您可以将此语句计数两次:2
(值m)等于2
(值d)的连续整数:
3
和[1,2]
我的代码:
[2,1]
我不明白为什么在这段代码中我没有超出范围的错误。因为当return sum([True for i in range(len(s)) if sum(s[i:i+m])==d])
时,i=5
语句将为if
和7超出数组sum(s[5:7])==3]
有什么想法吗?
谢谢!