我最近反对这个没有任何评论的代码.它找到了字的最小循环移位(此代码专门返回其在字符串中的索引)和它的称为Duval算法.只有我发现的信息用很少的单词描述算法并且代码更清晰.在理解这个算法时,我将不胜感激.我总是发现文本算法相当棘手,而且很难理解.
int minLexCyc(const char *x) {
int i = 0, j = 1, k = 1, p = 1, a, b, l = strlen(x);
while(j+k <= (l<<1)) {
if ((a=x[(i+k-1)%l])>(b=x[(j+k-1)%l])) {
i=j++;
k=p=1;
} else if (a<b) {
j+=k;
k=1;
p=j-i;
} else if (a==b && k!=p) {
k++;
} else {
j+=p;
k=1;
}
}
return i;
}
Run Code Online (Sandbox Code Playgroud) 我有两个单独的查询,都返回相同的IQueryable,我想在投影之前将它们合并。看起来在Linq to NHibernate中都没有实现Union或Concat?有谁知道我将如何实现这一目标?
我正在使用spring来设置我的正则表达式
弹簧:
<property name="regularExpressionAsString" value="(?<!\\.TMP)\\Z" />
Run Code Online (Sandbox Code Playgroud)
码:
public void setRegularExpressionAsString(String regularEx) {
this.regularExpression = Pattern.compile(regularEx);
}
Run Code Online (Sandbox Code Playgroud)
这不能正常工作,当我调试我的setter时,我已经看到spring逃脱了\ to \\有没有办法解决这个问题?
我有一个表单要求用户在多个表单字段中输入数字.他们可以选择他们想要的表单字段数.我已将表单字段标记为df1,df2,df3等.对于每个额外的表单字段,用户添加它将简单地加1到df之后的数字.我试图捕获(使用PHP)这些字段并将它们放在一个数组中的问题.更复杂的是,用户可能无法填写字段,例如df2或df15.我正在寻找一种方法来排序启动df1的帖子表单字段,但删除任何空白的字段.然后,将它们的值(数字)插入到数组中.不幸的是,我对如何筛选出NULL的已发布表单字段感到困惑.我一直在尝试遍历字段并在df之后增加数字但没有成功.
任何帮助将非常感谢.
非常感谢,
亚当
如何在数据表中搜索Col1 ="MyValue"的行中的行
我在想类似的东西
Assert.IsTrue(dataSet.Tables[0].Rows.
FindAll(x => x.Col1 == "MyValue" ).Count == 1);
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用!
我有两个表tabData和tabDataDetail.我想要来自Parent-Table(tabData)的所有idData(PK)只有 Child-Table中的行(tabDataDetail,FK是fiData):
任何其他组合无效.怎么弄他们?
我没有成功的尝试(慢,并给我也只有 fiActioncode 34的行):
alt text http://www.bilder-hochladen.net/files/4709-l0.jpg
谢谢你的时间.
编辑:感谢所有人的回答.现在我很遗憾没有足够的时间来检查哪一个是最好的还是有效的.我将第一个工作标记为答案.
EDIT2:我认为明确的答案确实是最有效和最紧凑的解决方案.
编辑3:Codesleuth的答案很有趣,因为它只返回行而不是只有一个fiActionCode = 11.很难看到,因为它的唯一真正的20个tabDataDetail-rows总共41524189行有两个.无论如何,这不是我所要求的100%,而是我正在寻找的东西.
如何用前导零填充我的整数变量.就像我有一个值为20的整数abc,但我希望它是'0000020'.
码:
quarterlyReportDataCMMS.QRTrailerRecord.FileRecordCount = Convert.ToInt32(refEligibleClaimants.Count);
Run Code Online (Sandbox Code Playgroud) 我们为个别日期提供了一组数据重组 - 第一个属性是时间戳,其余属性是值.
其中几个:
ts a b c
2010-08-06 08:00, 1.2, 3.4, 5.6
2010-08-06 08:05, 1.2, 3.4, 5.6
2010-08-06 08:10, 1.2, 3.4, 5.6
2010-08-06 08:15, 2.2, 3.3, 5.6
2010-08-06 08:20, 1.2, 3.4, 5.6
Run Code Online (Sandbox Code Playgroud)
我们想要生成每个值的平均值数组(就好像您将所有日期数据放在彼此之上,并平均排列的所有值).所有匹配的时间戳都是时间,所以我们可以通过创建带有时间戳的结果重新排列,其他列全部为0来完成,然后执行以下操作:
for day in day_data:
result.a += day.a
result.b += day.b
result.c += day.c
result.a /= len(day_data)
result.b /= len(day_data)
result.c /= len(day_data)
Run Code Online (Sandbox Code Playgroud)
似乎更好的方法是将每天转换为只有数字的2d数组(减去时间戳),然后在一次操作中将它们全部按元素进行平均,但是我们找不到这样做的方法 - 它始终是一个对象数组.
有谁知道如何做到这一点?
HttpURLConnection只支持GET,POST和HEAD之类的东西 - 但没有REPORT/PROPFIND.我将实现一个CalDAV-Client,但没有theese操作(如果我想使用它们,我得到一个ProtocolException)我必须使用auth编写/交付一个完整且庞大的HTTP库,依此类推.
"矫枉过正".
如何使用PROPFIND和REPORT发送请求?
我想仅使用不可变对象构建我的域模型.但我也想使用具有val字段的特征并将一些功能移到特征中.请看下面的例子:
trait Versionable {
val version = 0
def incrementVersion = copy(version=version+1)
}
Run Code Online (Sandbox Code Playgroud)
不幸的是这样的代码不起作用 - 对于特性Versionable,复制方法是未知的.
我认为为每个特征和类生成复制方法会很好.这样的方法应该创建对象的浅拷贝,并使用与原始对象相同的类型返回它,并根据传递给方法的参数修改给定的字段.
所以在下面的例子中:
class Customer(val name: String) extends Versionable {
def changeName(newName: String) = copy(name = newName)
}
val customer = new Customer("Scot")
Run Code Online (Sandbox Code Playgroud)
customer.changeName("McDonnald") 应该返回一个对象实例 Customer(version = 0, name = "McDonnald")
和
customer.incrementVersion 还应该返回一个对象实例 Customer(version = 1, name = "Scot")
据我所知,目前Scala中缺少此类功能不允许使用不可变类和特征而不会污染具有特征字段的类构造函数.在我的示例中,我不想将参数命名版本引入Customer类,因为版本处理的功能我想要封装在Versionable特性中.
我知道案例类中复制方法的功能以及使用默认参数在类中编写自己的复制方法的能力 - 但我认为这个功能并不能解决我的问题,因为在特征中不可能使用这种复制方法.现有功能的另一个缺点是使用复制方法的父类返回父类而不是实际复制的对象类.
我的问题:
1)您是否知道如何以优雅的方式处理上述示例.我对Scala很新,所以也许已经有了很好的解决方案.在我看来,优雅的解决方案应具有以下功能:
不应该使用反射
不应该使用序列化
应该快
应该在编译时可以验证
2)您如何考虑编写编译器插件来为我上面的示例生成复制方法的代码?是否可以使用编译器插件来做到这一点?您有任何示例或提示如何做到这一点?