我有一个Spring控制器来接收帖子并且它有效.唯一的问题是我们的SMS提供商将向我们发送包含大写首字母的键的标题,例如:
{
"FromPhoneNumber":"15177754077",
"ToPhoneNumber":"17572046106",
"ResponseReceiveDate":"7/29/2014 5:25:10 AM",
"Message":"PIN 1234"
}
Run Code Online (Sandbox Code Playgroud)
Spring会抛出一个错误:
Could not read JSON: Unrecognized field "FromPhoneNumber" (class com.talksoft.spring.rest.domain.CDynePost), not marked as ignorable (4 known properties: "responseReceiveDate", "toPhoneNumber", "fromPhoneNumber", "message"])
Run Code Online (Sandbox Code Playgroud)
所以,必须有一种方法可以覆盖这种行为.以下是处理CDyne帖子的控制器方法:
@RequestMapping(method = RequestMethod.POST, value="/celltrust")
public ResponseEntity<String> cellTrustPost(@RequestBody CDynePost cDynePost) {
String message = "FAILED";
UserInteraction userInteraction = getUserInteraction(cDynePost);
boolean success = someSpringService.logMessage(userInteraction);
if (success) {
message = "OK";
return new ResponseEntity<String>(message, HttpStatus.ACCEPTED);
} else {
return new ResponseEntity<String>(message, HttpStatus.FAILED_DEPENDENCY);
}
}
Run Code Online (Sandbox Code Playgroud)
这是CDynePost类:
public class CDynePost {
private String …Run Code Online (Sandbox Code Playgroud) 我正在测试两种斐波那契方法。两者都应该是线性的。要么我不理解记忆,要么 HashMap 查找比我想象的要慢。
我知道递归函数不应该通过添加 DP 来加速很多,但由于它是静态的,所以只需要计算一次(永远不会超出范围)。第一次执行后,它从 HashMap 中检索答案。
我这样做是为了准备实现 O(log n) 斐波那契函数和基准测试,但当我看到这个时有点绕道。(即使在迭代方法中添加记忆也会减慢速度)。
请赐教,我现在感觉很愚蠢。
迭代方法:
public static int linearIterativeFib(int x) {
if (x <= 2) {
return 1;
} else {
int prev = 0;
int result = 1;
for (int i = 2; i <= x; i++) {
int temp = result;
result += prev;
prev = temp;
}
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
递归方法:
static Map<Integer, Integer> memo = new HashMap<Integer, Integer>();
public static int linearRecursiveFib(int x) {
if (x …Run Code Online (Sandbox Code Playgroud) 使用Vim,Notepad ++或Sublime我希望能够搜索和替换部分匹配.我认为这可以使用负面预测来完成,但我想征求社区的意见.
假设我想在以下示例中将"掉线"事件替换为"后果":
一个反例:
我想一个明显的匹配模式是:
fall out[^a-z]
Run Code Online (Sandbox Code Playgroud)
但是,使用此匹配替换匹配中的"后果"会产生不良影响,即四个正例中的逗号,空格,句点和尾随引号将被删除.
人们通常如何处理这个问题,以及如何在比赛中保留上下套管?
所以,我前几天在Hacker News上看到了这个:http://web.mit.edu/tee/www/bertrand/problem.html
它基本上表示半径为1的圆上的随机和弦的长度大于3的平方根的概率是多少.
看看它,答案显然是1/3,但对HN的评论让人比我更聪明.https://news.ycombinator.com/item?id=10000926
我不想辩论,但我确实想确保我不是疯了.所以我编码了我认为会证明它是P = 1/3,但我最终得到P~.36.所以,我的代码有些不对劲.
我可以进行健全检查吗?
package com.jonas.betrand;
import java.awt.geom.Point2D;
import java.util.Random;
public class Paradox {
final static double ROOT_THREE = Math.sqrt(3);
public static void main(String[] args) {
int greater = 0;
int less = 0;
for (int i = 0; i < 1000000; i++) {
Point2D.Double a = getRandomPoint();
Point2D.Double b = getRandomPoint();
//pythagorean
if (Math.sqrt(Math.pow((a.x - b.x), 2) + Math.pow((a.y - b.y), 2)) > ROOT_THREE) {
greater++;
} else {
less++;
} …Run Code Online (Sandbox Code Playgroud)