小编nlu*_*ira的帖子

正则表达式最坏可能的复杂性

I'm aware regular expressions, as a concept, represent a single Regular Language, which can be processed via a DFA/NFA with O(n) ~O(2^m) complexity, being n the size of the string and m the size of the regex. Most stack-overflow discussions about the subject quote this awesome article that proves it.

However, regex implemented in modern languages deal with more than regular languages. For instance, it's possible to recognize palindromes with regex, a context-free grammar problem that, when solved via …

regex complexity-theory computer-science time-complexity formal-languages

5
推荐指数
0
解决办法
93
查看次数

在Java中实例化并初始化“多级”地图

我试图在 BeeCrowd 中解决这个问题,而不使用大量的 if/elses。

蜂群问题

它包括读取使用中的 3 个输入,例如:

vertebrado
ave
carnivoro
Run Code Online (Sandbox Code Playgroud)

并输出这些输入的对应词。

aguia
Run Code Online (Sandbox Code Playgroud)

我比java更了解python,这将是我在python中的解决方案(有效):

vertebrado
ave
carnivoro
Run Code Online (Sandbox Code Playgroud)

然而,我正在努力用 Java 编写一个好的解决方案。这是我当前的 Java 解决方案(也有效):

aguia
Run Code Online (Sandbox Code Playgroud)

该解决方案的明显问题是,以这种方式填充字典是不切实际的。代码已经很大了。如果dict有很多值,有很多“深度”,那么维护起来就会很困难。

有办法减少吗?dictIE,用几行声明和初始化?

java

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

Java函数解析字符串中的所有双精度数

我知道之前已经有人问过这个问题\xc2\xb9\xc2\xb9 ,但答复似乎并没有涵盖所有极端情况。

\n

我尝试用测试用例实现建议\xc2\xb9

\n

String("Doubles -1.0, 0, 1, 1.12345 and 2.50")

\n

哪个应该返回

\n

[-1, 0, 1, 1.12345, 2.50]:

\n
import java.util.Scanner;\nimport java.util.ArrayList;\nimport java.util.Locale;\npublic class Main\n{\n    public static void main(String[] args) {\n        String string = new String("Doubles -1.0, 0, 1, 1.12345 and 2.50");\n        System.out.println(string);\n        ArrayList<Double> doubles = getDoublesFromString(string);\n        System.out.println(doubles);\n    }\n    \n    public static ArrayList<Double> getDoublesFromString(String string){\n        Scanner parser = new Scanner(string);\n        parser.useLocale(Locale.US);\n        ArrayList<Double> doubles = new ArrayList<Double>();\n        double currentDouble;\n        while (parser.hasNext()){\n            if(parser.hasNextDouble()){\n                currentDouble = parser.nextDouble();\n                doubles.add(currentDouble);\n …
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
82
查看次数