定向越野赛事成绩是否合格算法

发布于:2022-10-15 ⋅ 阅读:(663) ⋅ 点赞:(0)

定向越野赛事成绩是否合格算法
定向越野赛事成绩合格条件为:
按顺序打卡号 :66、27、29、33、38、43、33、76、99
假设其中66号点位为起点,99号点位为终点,中间其他点位为打卡点位
起点终点为必打点位,且必须为第一个和最后一个打卡
其他点位必须按顺序同时存在,但不必须相邻

			var answer = 		[66,27,29,33,38,43,33,76,99]
			var lijiankun = 	[66,27,29,33,37,38,43,33,76,99] //李建坤多打了一个点,成绩有效
			var liangwanliang = [66,27,29,33,38,33,43,76,99]    //梁万良顺序打错了,成绩无效
			var huxiangzhan =   [87,27,29,33,38,33,43,76,99]    //胡向詹没打起点,成绩无效
			var chenge =   		[66,27,29,33,33,43,76,99]     	//陈戈少打了点,成绩无效
			
			console.log(validation(answer,lijiankun))
			console.log(validation(answer,liangwanliang))
			console.log(validation(answer,huxiangzhan))
			console.log(validation(answer,chenge))
			
			function validation(answer,athlete){
				//校验起终点
				if(athlete[0] != answer[0] || athlete[athlete.length - 1] != answer[answer.length - 1]){
					return false;
				}
				//校验打卡个数
				if(athlete.length < answer.lengh){
					return false;
				}
				//打卡顺序校验
				var athletePointer = 1;
				outer: for(var answerIndex = 1;answerIndex<answer.length -2;answerIndex++){
					inner: for(var athleteIndex = athletePointer;athleteIndex<athlete.length -2;athleteIndex++){
								if(answer[answerIndex] == athlete[athleteIndex]){
									athletePointer = athleteIndex + 1;
									continue outer;
								}
							}
							return false;
						}
				return true;
			}

在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告


今日签到

点亮在社区的每一天
去签到