function checkthis(tmp)
{
var str1=tmp
var checkvalue=str1.split(",")
//alert(checkvalue[1])
var chk=document.getElementsByName('checkn')
for (i=0 i<chk.lengthi++)
{
if (chk[i].checked &&chk[i].value!=str1)
{
chkvalue=chk[i].value.split(",")
if((checkvalue[0]<chkvalue[1]&&checkvalue[0]>chkvalue[0])||(checkvalue[1]<chkvalue[1]&&checkvalue[1]>chkvalue[0]))
{
alert(str1+" 和 "+chk[i].value+" 冲突!")
return(false)
break
}
}
}
return(true)
}
</script>
<body>
开始时间是2:00结束时间是4:00 <input type="checkbox" name="checkn" id="c1" value="2,4" onclick="return(checkthis(this.value))"><br>
开始时间是3:00结束时间是5:00 <input type="checkbox" name="checkn" id="c2" value="3,5" onclick="return(checkthis(this.value))"><br>
开始时间是4:00结束时间是6:00 <input type="checkbox" name="checkn" id="c3" value="4,6" onclick="return(checkthis(this.value))"><br>
开始时间是5:00结束时间是7:00 <input type="checkbox" name="checkn" id="c4" value="5,7" onclick="return(checkthis(this.value))"><br>
</body>
以上代码仅供参考,在我本机测试通过的。你可以修改checkbox里面的value值
(10,20)(20,30)如果只是判断有交叉的到也简单(10,20)-的大小 20-10=10
(20,30)大小30-20=10
(10,20)(20,30)大小30-10=20
现在10+10=20,ok,他们没有交叉
验证:
(10,20)(19,30)
| |
10 11
(10+11)>(30-10)
ok他们有交叉
其实,我的想法很简单,既然是区间了,他就有个界限,你可以用他的界限来看看他是处在哪个区间,或者说是那几个区间之间。
判断(x,y)有没有跟其他的区间交叉,
如果x<10,说明他肯定没有跟(10,20)交叉,也不会跟区间左界限>10的区间交叉,
如果x>10说明他有可能跟(10,20)交叉,当然还要看y的大小了,
总之,就是比较x,y 跟几个区间界限的大小,这样就能判定他跟几个区间的交叉。
在这里,还是要好好的考虑一下怎样比较下来,比较的节省时间。
交叉合并:如字符串一为:abcd 字符串二为:1234。则结果为:a1b2c3d4。
import java. util. ArrayListimport java. util. Listpublic class A {
public static void main(string[] args){
string a[]={"a","b","c"}
string b[]={"1","2","3"}
CombineTwoArray(a,b)
system. out. println(CombineTwoArray(a,b))
}
public static List<string>combineTwoArray(string[] first, String[] second)t List<string>outlist=new ArrayList<string>()
int index=0
while(index<first. length &&index<second. length){
outlist. add(first[ index])outlist. add(second[ index])
++indexif(index>=first. length){
for (int i=indexi<second. lengthi++){
outlist. add(second[i])
}
} else{
for (int i=indexi<first. lengthi++){
outlist. add(first[i])
}
return outlist
}
}
js的写法:
<!DOCTYPE html pUBLIC"-//w3c//DTD XHTMT 1.0
Transitional//EN""http://www.w3.org/TR/xhtm11/DrD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtm1">
<head>
<title>第十五题:交叉合并字符串</title>
<style>
#form{
margin:0auto;width:500px;top:100px;height:300px;
</style>
<script type="text/javascript">
var reg="*[A-za-20-9]+$";function check(){
var strl =document.all.strl.value;var str2 =document.all.str2.value;if(str1==""){
alert(“字符串一不允许为空!");document.all.strl.focus();return;
}else if(!/^[A-2a-20-9]+$/.test(str1)){
alert("字符串一只能是数字和字母的组合");document.all.str1.focus();return;
}else if(str2==""){
alert(”字符串二不允许为空!");document.all.str2.focus();
return;
}else if(!/^[A-Za-20-9]+5/.test(str2)){
alert(“字符串二只能是数字和字母的组合");document.a1l.str2.focus();return;var string="";var font1="<font style='color:red;'>";var font2="<font style='color:blue;'>";var fontend="</font>";if(str1.1ength>=str2.1ength){
for(vari=0;i<str1.1ength;i++){
if(i<str2.length){
string +=font1+strl[i]+fontend+ font2+ str2[i]+fontend;
}else{
string+=font1+strl[il;
}else{
for(var i=0;i<str2.1ength;i++){
if(i<strl.length){
document.all.result.innerHTML=string;
</script>
</head>
<body>
<div id="form">
<center><h2>第十五题:交叉合并字符串</h2></center>
字符串1:<input type="text"id="str1"/><br/>字符串2:<input type="text"id="str2"/><br/>
<input type="button"value="交叉合并字符串”onclick="check();"/>
<br/>
<div id="result"></div>
</div>
</body></html>
string+=font1+strl[i]+fontend+font2+str2[i]+fontend;
}else{
string+=font2+str2[i]+fontend;
扩展资料:
/**
* 合并两个函数
* @param functionA 先执行
* @param functionB 执行完 functionA 后返回
* @returns {*}
*/
function mergeFunction (functionA, functionB) {
if (!functionA || !functionB) return
var merge = functionB
functionB = (function () {
merge.call(this)
functionA.call(this)
})()
return functionB = merge
}