我试图找到解决一个问题的优雅方法。
Issue : Check few numbers continuity.
Value : Start number, End Number (Each Number Group)
例如有一组。
First Group : Start 1, End 90
Second Group : Start 91, End 180
Third Group : Start 181, End 225
Forth Group : Start 226, End 310
Fifth Group : Start 311, End 360
正如您可以查看上面的列表,组正在连接
First Group End : 90 , Second Group Start 91.
Second Group End : 180, Third Group Start 181.
所以所有组号都连在一起。
Then results is correct, Status show correct
But if there is disconnecting point, status should be not correct.
不正确的例子。
First Group : Start 1, End 90
Second Group : Start 94, End 180
Third Group : Start 181, End 225
First Group End 90, Second Group Start 94. So it's not continuous numbers.
我可以将ArrayLists逐个检查, 但我想知道任何人都有优雅的解决方案来制作动态逻辑吗?
我的解决方案可能是。
ArrayList<Integer> ArrStartRawData = new ArrayList<Integer>();
ArrayList<Integer> ArrEndRawData = new ArrayList<Integer>();
ArrStartRawData.add(Group[0].start);
ArrEndRawData.add(Group[0].end);
ArrStartRawData.add(Group[1].start);
ArrEndRawData.add(Group[1].end);
ArrStartRawData.add(Group[2].start);
ArrEndRawData.add(Group[2].end);
String status = "";
for(int z=0; z < ArrEndRawData.size() ; z++){
Integer num = ArrEndRawData.get(z);
if(z != ArrEndRawData.size()-1) {
if((ArrStartRawData.get(z+1)-ArrEndRawData.get(z)) == 1) {
status = "Correct";
} else {
status = "Not Correct";
break;
}
}
}
任何人都有更好的想法制作动态代码吗?
由于
答案 0 :(得分:0)
这可行。您也可以使用它们所在的初始阵列来实现相同的功能。另外,如果你从z = 1开始,你可以删除if语句,只检查false语句......
但是因为我不确定你从这里开始的是什么......就是你拥有的,但不是那么复杂。对不起,这是我理解的唯一方法。
status = "Correct";
for(int z=1; z < ArrEndRawData.size() ; z++){
if((ArrStartRawData.get(z) - ArrEndRawData.get(z-1)) != 1) {
status = "Not Correct";
break;
}
}
另外,为了充满乐趣和动态,我会添加一些东西以确保你的End和Start一样多。
答案 1 :(得分:0)
这是一个非常常见的面试问题,可以在下面找到收集的例子。
答案 2 :(得分:0)
这个也可以完成这项工作。
$('form.p_form').submit(function (){
var description = $.trim($('#f9').val());
//this blocks form submit if empty field and it works
if(description === '') return false;
//this doesnt work
if(description !== ''){
var aa = $.post("checkdescription.php",{
description: description
},
function(data, status){
if(data !== ''){
return data;
}
});
//here I need to know the response text returned from ajax so I can say like this:
if(aa === 'error message'){
return false;
}
}
});