问题列表 - 第38196页

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

德尔福>垂直扫描线?(获取列而不是行?)

替代文字

我正在尝试编写一种算法,用于检测下图中"RF"和"WOOLF"之间的空间.我需要类似Scanline for COLUMNS而不是行.我的算法将扫描每一列是否存在黑色像素,如果发现任何它将存储'1',否则它将存储'0',因此例如上面的图像可能是:000001111111111111111111100000000000000000000000011111111111111111111111111111111111111111111111111所以我将知道该空间从像素30开始.

delphi image-processing

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

c ++数组的动态大小

我用c ++中的1D数组有一个小问题.我有一个功能线:

void func(int (&array)[???])
{
    // some math here;

    "for" loop {
        array[i] = something;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在代码中的某处调用函数,在我进行数学运算之前,我无法知道数组的维数.该数组作为引用转到函数!,因为我需要在main()函数中使用它.我怎么能像这样分配数组?所以数组有?? 维度转到函数作为引用然后我必须放置维度并写入一些值.

c++ arrays dynamic

9
推荐指数
4
解决办法
1555
查看次数

具有O(N)和反向引用支持的正则表达式

您可能知道有两种不同的正则表达式实现:一种使用回溯(pcre),另一种使用有限自动机(re2).

这两种算法都有其局限性:在特定情况下,pcre可以采用指数时间来查找匹配,而有限自动机不支持反向引用.

PCRE实现支持反向引用,在像匹配的表情非常低效的/a?a?a?a?aaaa/反对aaaa,更多的a的表达和输入有-的时间也就越长,并与他们的30+它会占用大量时间,如果.

具有有限自动机的版本可以很好地处理所有这些实现,并且输入具有O(N)复杂性,但不支持反向引用:

pcre时间对复杂的表达式 - http://i.stack.imgur.com/D4gkC.png NFA处理这些,但不支持反向引用 - http://i.stack.imgur.com/t2EwI.png

有关反向引用的一些信息支持:

RE2 - http://code.google.com/p/re2/

一个重要的例外是RE2 不再支持反向引用 和广义零宽度断言,因为它们无法有效实现.

汤普森NFA - http://swtch.com/~rsc/regexp/regexp1.html

如前所述,没有人知道如何有效地实现具有反向引用的正则表达式,尽管没有人能够证明它也是不可能的.(具体来说,问题是NP完全,这意味着如果有人确实找到了有效的实施方案,那对计算机科学家来说将是一个重大新闻,并且会赢得一百万美元的奖金.)

所以我创建了自己的版本,它既支持反向引用又具有O(N)复杂性.它用haskell编写,大约600行(其中约200个是空白的,约200个类型的声明,可以跳过)行长.它在大约10秒内通过/a?a?aa/反对aa(100个a)来咀嚼,据我所知它是唯一可以匹配的版本

/a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?(a?a?a?a?a?a?a?a?a?a?aaaaaaaaaa)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\1/
Run Code Online (Sandbox Code Playgroud)

反对

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Run Code Online (Sandbox Code Playgroud)

在理智(约10秒)的时间.它当然支持基本正则表达式规范中列出的所有其他功能,我在互联网上找到了它.

问题是:它真的是"计算机科学家的重大新闻",如果是这样,我该怎么办?

PS:我将在大约一周内显示源代码 - 我仍然希望使用分析器运行一些测试并替换几个内部数据结构.

regex complexity-theory

-4
推荐指数
1
解决办法
2484
查看次数

无法使用JavaScriptDateTimeConverter解析数据

我尝试使用Json.net解析简单的JSON

 string inputJson = @"
                {
                 ""modificationTime"" : ""\/Date(1224043200000)\/""
                 }";
Run Code Online (Sandbox Code Playgroud)

财产是定义的

[JsonProperty("modificationTime")]
[JsonConverter(typeof(JavaScriptDateTimeConverter))]
public DateTime ModificationTime { get; set; }
Run Code Online (Sandbox Code Playgroud)

但DeserializeObject使用以下消息抛出异常:"解析日期时出现意外的标记或值.令牌:日期,值:10/15/2008 04:00:00"

好吧,据我所知它实际上已经解析了日期,不是吗?从JavaScriptDateTimeConverter.cs中的第68行抛出此异常:

68 if (reader.TokenType != JsonToken.StartConstructor ||  string.Compare(reader.Value.ToString(), "Date", StringComparison.Ordinal) != 0)
69            throw new Exception("Unexpected token or value when parsing date. Token: {0}, Value: {1}".FormatWith(CultureInfo.InvariantCulture, reader.TokenType, reader.Value));
70    
71          reader.Read();
Run Code Online (Sandbox Code Playgroud)

在这个地方reader.TokenType是Date和reader.Value.ToString()是10/15/2008 04:00:00.有任何想法吗?

c# json json.net

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

当JAR已经存在时,为什么Maven再次运行测试?

install我的Maven项目:

mvn clean install
Run Code Online (Sandbox Code Playgroud)

一切正常,JAR文件在/target目录中创建.现在我再次运行它:

mvn install
Run Code Online (Sandbox Code Playgroud)

Maven 再次执行单元测试和静态代码分析.我没有对.java文件进行任何更改,JAR就在那里,为什么要再次运行测试呢?我做错了什么或是maven是如何设计的?

java maven-2

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

无法使用值[MinimalLock]在对象[log4net.Appender.RollingFileAppender]上设置属性[lockingModel]

我在我的C#应用​​程序中收到此错误.我使用log4net作为日志记录工具.

这是我的app.config文件:

<configuration>

  <configSections>
    <section name="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>

  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="myLogger" />
    </root>
    <appender name="myLogger" type="log4net.Appender.RollingFileAppender,log4net">
      <param name="File" value="C:\MyApp\Logs\appLog.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="2" />
      <maximumFileSize value="100KB" />
      <staticLogFileName value="true" />
      <datePattern value="yyyyMMdd" />
      <lockingModel value="log4net.Appender.FileAppender+MinimalLock" />
      <immediateFlush value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
      </layout>
    </appender>
  </log4net>

</configuration>
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

c# logging log4net log4net-configuration

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

Android中的EditText?

有没有办法限制EditText在运行时只能输入2位数字.

例如:

如果我设置我的android:inputType="numberDecimal",我输入其中的值.它接受值123.000000000000.但我想限制它像123.00

有没有可能的方法呢?

android android-edittext

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

为什么这个RegExp匹配两个字符串?

var str = "abcd1234";
var first = str.match(/^abcd(\d+)$/)[0]; //matches abcd1234
var number = str.match(/^abcd(\d+)$/)[1]; //matches 1234 only
Run Code Online (Sandbox Code Playgroud)

为什么这个正则表达式首先与整个str匹配,然后匹配数字部分?看着它我会说它总是必须匹配abcd然后一个或多个数字?"abcd"不是比赛的强制性部分吗?

顺便说一句,我发现这个正则表达式是这个问题的一部分.

谢谢.

javascript regex

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

在更改之前获取select(下拉列表)的值

我想要实现的是每当<select>下拉列表被更改时我想要更改前的下拉列表的值.我正在使用1.3.2版本的jquery并在更改事件上使用但是我在那里得到的值是在更改之后.

<select name="test">
<option value="stack">Stack</option>
<option value="overflow">Overflow</option>
<option value="my">My</option>
<option value="question">Question</option>
</select>
Run Code Online (Sandbox Code Playgroud)

让我们说当前选择My当我在onchange事件中将其更改为堆栈时(即当我将其更改为堆栈时),我希望它是先前的值,即我在这种情况下的预期.

怎么能实现这一目标?

编辑:在我的情况下,我在同一页面中有多个选择框,并希望同样的事情应用于所有这些.此外,我的所有选择都是在通过ajax加载页面后插入的.

javascript jquery jquery-events

224
推荐指数
5
解决办法
29万
查看次数