下面的问题在2008年被问及2003年的一些代码.正如OP的更新显示的那样,整个帖子已经被2008年的老式算法淘汰,并且仅作为历史好奇而存在.
我需要在C/C++中进行快速不区分大小写的子字符串搜索.我的要求如下:
这是我正在使用的当前实现(取自GNU C库):
/* Return the offset of one string within another.
Copyright (C) 1994,1996,1997,1998,1999,2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later …Run Code Online (Sandbox Code Playgroud) 我想解析srt字幕:
1
00:00:12,815 --> 00:00:14,509
Chlapi, jak to jde s
t?ma pracovníma sv?tlama?.
2
00:00:14,815 --> 00:00:16,498
Trochu je zesilujeme.
3
00:00:16,934 --> 00:00:17,814
Jo, sleduj.
Run Code Online (Sandbox Code Playgroud)
每个项目都进入结构.有了这个正则表达式:
A:
RE_ITEM = re.compile(r'(?P<index>\d+).'
r'(?P<start>\d{2}:\d{2}:\d{2},\d{3}) --> '
r'(?P<end>\d{2}:\d{2}:\d{2},\d{3}).'
r'(?P<text>.*?)', re.DOTALL)
Run Code Online (Sandbox Code Playgroud)
B:
RE_ITEM = re.compile(r'(?P<index>\d+).'
r'(?P<start>\d{2}:\d{2}:\d{2},\d{3}) --> '
r'(?P<end>\d{2}:\d{2}:\d{2},\d{3}).'
r'(?P<text>.*)', re.DOTALL)
Run Code Online (Sandbox Code Playgroud)
这段代码:
for i in Subtitles.RE_ITEM.finditer(text):
result.append((i.group('index'), i.group('start'),
i.group('end'), i.group('text')))
Run Code Online (Sandbox Code Playgroud)
使用代码BI只有一个项目在数组中(因为贪婪.*)和代码AI有空的'文本',因为没有贪心.*?
怎么治这个?
谢谢
我需要将python代码存储在数据库中并将其加载到某种bootstrap.py应用程序中以便执行.我不能使用文件系统,因为我正在使用GAE,所以这是我唯一的选择.
但是我不是经验丰富的python用户.
我已经能够加载1行代码并使用eval运行它,但是一行代码有两行或更多行给了我"语法无效"错误.
我也在考虑是否可以扩展"import"加载器来实现数据库加载.
谢谢!
该文档的Python 2.7列表string.find作为已弃用的功能,但不(不像atoi和atol)提供一种替代.
我现在在2.7编码,所以我很乐意使用它,但我想知道:
我有两个字符串:
>>> a = "abcd"
>>> b = "xyz"
>>> c = a + b
>>> c
abcdxyz
Run Code Online (Sandbox Code Playgroud)
abcd xyz在添加时a,我怎样才能得到结果b呢?
我想确定文件是否位于本地硬盘驱动器或OSX中从网络安装的驱动器上.所以我想要生成类似下面的代码:
file_name = '/Somewhere/foo.bar'
if is_local_file(file_name):
do_local_thing()
else:
do_remote_thing()
Run Code Online (Sandbox Code Playgroud)
我找不到像is_local_file()上面例子那样有效的东西.理想情况下,我想使用现有的功能,如果有一个功能,但是我怎么能自己实现呢?我提出的最好的是以下,但这对待已安装的dmgs就好像它们是远程的,这不是我想要的.另外我怀疑我可能正在重新发明轮子!
def is_local_file(path):
path = path.split('/')[1:]
for index in range(1,len(path)+1):
if os.path.ismount('/' + '/'.join(path[:index])):
return False
return True
Run Code Online (Sandbox Code Playgroud)
我有两个生成校验和的函数,其中一个使用多进程,这会产生开销,但如果网络连接速度慢,则对于大文件更快.
我有两个文本文件,格式如下:
foo,bar,etc
Run Code Online (Sandbox Code Playgroud)
另一个是这样的:
1,2,3
Run Code Online (Sandbox Code Playgroud)
我想把这两个文本文件放到Python的一个字典中,而不必手动完成每一个.我希望输出将字符串连接到数字.有没有办法做到这一点?
我试图使用Ramanujan算法近似pi :

它应该计算总和,直到最后一个总和小于1e-15.
这应该只是为了好玩而占用我最多半小时的时间......但我的代码并没有产生任何接近pi的东西,我不知道为什么.很可能是我忽略的傻事,但不确定!
只是一个注释:我从$k1 开始,因为0打破了我的factorialsub,从我的计算中k = 0无论如何都会返回0.
我意识到代码可以更有效地编写; 我尽可能简单地写出来,看看能不能理解我哪里出错了.任何帮助赞赏!
#!/usr/bin/perl
use warnings;
use strict;
sub approx_pi {
my $const = (2 * sqrt(2)) / 9801;
my $k = 1;
my $sum = 0;
while ($sum < 1e-15) {
my $p1 = factorial((4 * $k), 1);
my $p2 = 1103 + (26390 * $k);
my $p3 = (factorial($k, 1))**4;
my $p4 = 396**(4 * $k);
$sum = $sum + ( ($p1 * …Run Code Online (Sandbox Code Playgroud) 我正在使用Archlinux,我发现在编写Python时我不需要空闲.
以下是默认PKGBUILD文件的一部分:
./configure --prefix=/usr \
--enable-shared \
--with-threads \
--with-computed-gotos \
--enable-ipv6 \
--with-valgrind \
--with-system-expat \
--with-dbmliborder=gdbm:ndbm \
--with-system-ffi
ln -sf idle3 "${pkgdir}"/usr/bin/idle
Run Code Online (Sandbox Code Playgroud)
我可以在不安装Idle的情况下构建python吗?
提前致谢.
给出一个长度uint8_t缓冲区x,我试图找到一个函数或一个可以删除第n位(或n到n + i)的宏,然后左移剩余的位.
示例#1:
输入0b76543210 0b76543210 ...然后输出应该是0b76543217 0b654321 ...
示例#2:如果输入是:
uint8_t input[8] = {
0b00110011,
0b00110011,
...
};
Run Code Online (Sandbox Code Playgroud)
没有第一位的输出应该是
uint8_t output[8] = {
0b00110010,
0b01100100,
...
};
Run Code Online (Sandbox Code Playgroud)
我已尝试以下方法删除第一位,但它不适用于第二组位.
/* A macro to extract (a-b) range of bits without shifting */
#define BIT_RANGE(N,x,y) ((N) & ((0xff >> (7 - (y) + (x))) << ((x))))
void removeBit0(uint8_t *n) {
for (int i=0; i < 7; i++) {
n[i] = (BIT_RANGE(n[i], i + 1, 7)) << …Run Code Online (Sandbox Code Playgroud) python ×7
c ×2
c++ ×2
string ×2
deprecated ×1
dictionary ×1
find ×1
glibc ×1
logic ×1
math ×1
optimization ×1
perl ×1
python-3.x ×1
python-idle ×1
regex ×1