问题列表 - 第42618页

用LaTeX等效替换所有重音字符

给定一个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的新手,所以我欢迎对上面代码的评论.

python unicode latex diacritics

14
推荐指数
3
解决办法
5650
查看次数

如何检测设备是否拥有SD卡?

我预见我的应用程序将需要存在SD卡存储设备.如何查询设备以获取存储选项清单?

android

5
推荐指数
1
解决办法
5093
查看次数

在Java中从链表中删除重复项而不使用额外的缓冲区

我正在审查即将进行的测试的一些代码片段.我在笔记中看到了这一点,刚才意识到方法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)

java linked-list no-duplicates

2
推荐指数
2
解决办法
9845
查看次数

使用redis代替heroku应用程序上的数据库

我在heroku上部署了一个简单的应用程序.用户基本上会输入搜索字词.我想在页面的一侧添加一个显示"最近搜索"的部分.虽然只是为此我不想在我的应用程序中添加数据库.我读过关于redis的内容,但是这可以用于什么?我可以在redis哈希上推送大约10个最近的搜索术语并检索它们吗?

ruby-on-rails heroku redis

3
推荐指数
1
解决办法
628
查看次数

立方体球体相交测试?

这样做最简单的方法是什么?我在数学上失败了,我在互联网上找到了非常复杂的公式...我希望如果有一些更简单的吗?

我只需要知道一个球体是否与一个立方体重叠,我不在乎它做了哪个点等.

我也希望它能利用这两个形状都是对称的事实.

编辑:立方体在x,y,z轴上直线对齐

c++ intersection

6
推荐指数
2
解决办法
2万
查看次数

PHP变长参数?

在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并使你的功能似乎没有参数(除非我做错了).我根本不应该尝试使用这种语言功能吗?

php function variadic-functions

8
推荐指数
3
解决办法
9291
查看次数

如果有一个词,我怎么得到所有单词的列表,这些单词的区别是一个字母?

假设我有"CAT"这个词.这些单词与"CAT"的区别在于一个字母(不是完整列表)

  • 脂肪
  • COT
  • 等等

有一种优雅的方式来产生这个吗?显然,一种方法是通过蛮力.

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次.

有没有更好,更优雅的方式来做到这一点?

algorithm

6
推荐指数
1
解决办法
4000
查看次数

静态构造函数和异常

如果静态构造函数抛出异常并且未处理它会发生什么?

它会一直存在,直到应用程序域存活?

c# constructor

7
推荐指数
1
解决办法
1664
查看次数

如何使用GLSL着色器将径向模糊应用于整个场景?

我在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)

opengl glsl blur

17
推荐指数
1
解决办法
1万
查看次数

从键盘读取时,希腊字符串与正则表达式不匹配

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 regex

11
推荐指数
2
解决办法
1619
查看次数