给定一个Unicode字符串,我想用生成它们的LaTeX代码替换非ASCII字符(例如,已经é
成为\'e
,并œ
成为\oe
).我将它合并到Python代码中.这应该依赖于转换表,我已经提出了以下代码,这很简单,似乎很好用:
accents = [
[ u"à", "\\`a"],
[ u"é", "\\'e"]
]
translation_table = dict([(ord(k), unicode(v)) for k, v in accents])
print u"été à l'eau".translate(translation_table)
Run Code Online (Sandbox Code Playgroud)
但是,写一个相当完整的翻译表需要我很长时间,谷歌没有多大帮助.有人有这样的事情准备好,或知道在哪里找到一个?
PS:我是Python的新手,所以我欢迎对上面代码的评论.
我正在审查即将进行的测试的一些代码片段.我在笔记中看到了这一点,刚才意识到方法1的代码实际上并没有删除重复项,如果列表是这样的A - > B - > C - > A.我写了一个替代函数(方法2)我认为实际上会有效.你们有什么感想?方法1实际上不起作用,我在追踪错误吗?ps我们目前不允许编译器:)
这是代码,简要介绍它应该做什么.
方法1:当头部和尾部有两个确切的东西时,我认为不起作用.编写代码以从没有缓冲区的未排序列表中删除重复项.Wwe可以用两个指针迭代:"current"执行正常迭代,而"runner"遍历所有先前节点以检查重复.Runner每个节点只能看到一个重复,因为如果有多个重复项,它们就已经被删除了.
public static void deleteDuplicates1(LinkedListNode head) {
if (head == null) return;
LinkedListNode previous = head;
LinkedListNode current = previous.next;
while (current != null) {
LinkedListNode runner = head;
while (runner != current) { // Check for earlier dups
if (runner.data == current.data) {
LinkedListNode tmp = current.next; // remove current
previous.next = tmp;
current = tmp; // update current to next node
break; // all other dups have …
Run Code Online (Sandbox Code Playgroud) 我在heroku上部署了一个简单的应用程序.用户基本上会输入搜索字词.我想在页面的一侧添加一个显示"最近搜索"的部分.虽然只是为此我不想在我的应用程序中添加数据库.我读过关于redis的内容,但是这可以用于什么?我可以在redis哈希上推送大约10个最近的搜索术语并检索它们吗?
这样做最简单的方法是什么?我在数学上失败了,我在互联网上找到了非常复杂的公式...我希望如果有一些更简单的吗?
我只需要知道一个球体是否与一个立方体重叠,我不在乎它做了哪个点等.
我也希望它能利用这两个形状都是对称的事实.
编辑:立方体在x,y,z轴上直线对齐
在Python和其他人中,可变长度参数列表有特殊的语法:
def do_something(*args):
# do something
do_something(1, 2, 3, 4, 5, ...) # arbitrarily long list
Run Code Online (Sandbox Code Playgroud)
我正在阅读PHP手册,它说:
PHP 4及更高版本支持用户定义函数中的可变长度参数列表.使用func_num_args(),func_get_arg()和func_get_args()函数非常简单.
不需要特殊的语法,并且参数列表仍然可以使用函数定义显式提供,并且将正常运行.
我得到了第一部分.您可以将任意数量的参数传递给不带参数的函数,然后将它们作为数组使用func_get_args()
,等等.尽管如此,我并没有真正理解第二部分所说的内容.
所以,我的问题是,是否有一些特殊的可变长度参数语法,或者一些我不知道的最佳实践?手册建议的方法充其量只是kludgey并使你的功能似乎没有参数(除非我做错了).我根本不应该尝试使用这种语言功能吗?
假设我有"CAT"这个词.这些单词与"CAT"的区别在于一个字母(不是完整列表)
有一种优雅的方式来产生这个吗?显然,一种方法是通过蛮力.
pseduo代码:
while (0 to length of word)
while (A to Z)
replace one letter at a time, and check if the resulting word is a valid word
Run Code Online (Sandbox Code Playgroud)
如果我有一个10个字母的单词,循环将运行26*10 = 260次.
有没有更好,更优雅的方式来做到这一点?
我在GLSL中有一个径向模糊着色器,它采用纹理,对其应用径向模糊并将结果呈现给屏幕.到目前为止,这非常有效.
问题是,这会将径向模糊应用于场景中的第一个纹理.但我真正想做的是将这种模糊应用于整个场景.
实现此功能的最佳方法是什么?我是否可以仅使用着色器执行此操作,或者是否必须首先将场景渲染到纹理(在OpenGL中),然后将此纹理传递到着色器以进行进一步处理?
// Vertex shader
varying vec2 uv;
void main(void)
{
gl_Position = vec4( gl_Vertex.xy, 0.0, 1.0 );
gl_Position = sign( gl_Position );
uv = (vec2( gl_Position.x, - gl_Position.y ) + vec2(1.0) ) / vec2(2.0);
}
Run Code Online (Sandbox Code Playgroud)
// Fragment shader
uniform sampler2D tex;
varying vec2 uv;
const float sampleDist = 1.0;
const float sampleStrength = 2.2;
void main(void)
{
float samples[10];
samples[0] = -0.08;
samples[1] = -0.05;
samples[2] = -0.03;
samples[3] = -0.02;
samples[4] = -0.01;
samples[5] = …
Run Code Online (Sandbox Code Playgroud) public static void main(String[] args) throws IOException {
String str1 = "??123456";
System.out.println(str1+"-"+str1.matches("^\\p{InGreek}{2}\\d{6}")); //??123456-true
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str2 = br.readLine(); //??123456 same as str1.
System.out.println(str2+"-"+str2.matches("^\\p{InGreek}{2}\\d{6}")); //?”??123456-false
System.out.println(str1.equals(str2)); //false
}
Run Code Online (Sandbox Code Playgroud)
从键盘读取时,相同的String与正则表达式不匹配.
是什么导致了这个问题,我们如何解决这个问题呢?
提前致谢.
编辑:我使用System.console()进行输入和输出.
public static void main(String[] args) throws IOException {
PrintWriter pr = System.console().writer();
String str1 = "??123456";
pr.println(str1+"-"+str1.matches("^\\p{InGreek}{2}\\d{6}")+"-"+str1.length());
String str2 = System.console().readLine();
pr.println(str2+"-"+str2.matches("^\\p{InGreek}{2}\\d{6}")+"-"+str2.length());
pr.println("str1.equals(str2)="+str1.equals(str2));
}
Run Code Online (Sandbox Code Playgroud)
输出:
ΔΞ123456真-8-
ΔΞ123456
ΔΞ123456真-8
str1.equals(STR2)=真
java ×2
algorithm ×1
android ×1
blur ×1
c# ×1
c++ ×1
constructor ×1
diacritics ×1
function ×1
glsl ×1
heroku ×1
intersection ×1
latex ×1
linked-list ×1
opengl ×1
php ×1
python ×1
redis ×1
regex ×1
unicode ×1