CF1571A Sequence of Comparisons 的题解

文章介绍了CF1571A题目,涉及一个整数序列,其中部分相邻元素的比较结果已知。目标是根据这些比较确定序列首尾元素的大小关系。解题策略是检查所有相邻元素的关系,如果全为=则输出=,全为>或<输出对应符号,否则输出?.文章还提到了Kotlin语言中的for循环和repeat循环与C++中相应循环的对应关系。
摘要由CSDN通过智能技术生成

CF1571A Sequence of Comparisons 的题解

洛谷传送门
CF传送门

题目大意

原来,Petya 有一个整数数列 a a a 它的长度为 n n n。但随着时间的推移,数列自身丢失了,只有 n − 1 n-1 n1 组相邻元素的关系比较结果仍然存在。也就是说,对于每一个从 1 1 1 n − 1 n-1 n1 a i a_i ai,Petya 知道以下三个情况之一:

  • a i < a i + 1 a_i<a_i+1 ai<ai+1

  • a i = a i + 1 a_i=a_i+1 ai=ai+1

  • a i > a i + 1 a_i>a_i+1 ai>ai+1

Petya 想知道 a 1 a_1 a1 a n a_n an 的大小关系是否唯一。

你需要帮助 Petya 确定 a 1 a_1 a1 a n a_n an 的大小关系或报告无法明确确定结果。

思路

根据题目和样例,此题可以分四种情况来考虑:

  1. 全部为 =,输出 =

  2. 全部为 >=,输出 >

  3. 全部为 <=,输出 <

  4. 既有 < 也有 >,输出 ?

有了这些我们就可以用一个循环语句和四个分支结构来完成。

因为这题只能用 Kotlin 语言,所以在这里给大家介绍一下 Kotlin 语言中的循环语句和 C++ 语言的区别。

Kotlin 语言有两种循环结构,一种是 loop@ for(i in 1..t) 这个语句其实就是 C++ 的 for 循环。loop@ for(i in 1..t)for (int i = 1; i <= t; i ++) 是同一个意思。

另一种 repeat(t) 就是 C++ 中的 while 循环。repeat(t)while (t --) 是同一个意思。

代码

import java.util.Scanner
fun main() {
	val t = readLine()!!.toInt()
    loop@ for(i in 1..t) {
        val s = readLine()!!
		if (!('>' in s || '<' in s)) {
			println("=")
		} 
        else if (!('>' in s)) {
			println('<')
		} 
        else if (!('<' in s)) {
			println('>')
		} 
        else {
			println('?')
		}
    }
}

PS:不用 Kotlin 会 waiting,所以请大家用 Kotlin 做。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值