博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HackerRank - Almost Sorted
阅读量:5298 次
发布时间:2019-06-14

本文共 1039 字,大约阅读时间需要 3 分钟。

Nothing special, just some corner cases

n = int(input())arr = [int(i) for i in input().strip().split()]# Collect rec = []i = 0while i < n - 1:    if arr[i] > arr[i + 1]:        inx = i        cnt = 1        while i < n - 1 and arr[i] > arr[i + 1]:            cnt += 1            i += 1        rec.append((inx, cnt))    else:        i += 1# Checkif len(rec) == 1:    if rec[0][1] == 2:        if rec[0][0] + 1 < n - 1 and arr[rec[0][0]] > arr[rec[0][0] + 2]:            print ("no")        else:            print ("yes")            print ("swap %d %d" % (rec[0][0] + 1, rec[0][0] + 2))    elif rec[0][1] > 2:        if rec[0][0] + rec[0][1] - 1 < n - 1 and arr[rec[0][0]] > arr[rec[0][0] + rec[0][1]]:            print ("no")        else:            print ("yes")            print ("reverse %d %d" % (rec[0][0] + 1, rec[0][0] + rec[0][1]))elif len(rec) == 2 and rec[0][1] == 2 and rec[1][1] == 2:    print ("yes")    print ("swap %d %d" % (rec[0][0] + 1, rec[1][0] + 2))else:    print ("no")

转载于:https://www.cnblogs.com/tonix/p/4346126.html

你可能感兴趣的文章
机器视觉:SSD Single Shot MultiBox Detector
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
程序员的“机械同感”
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
Python Web框架Django (零)
查看>>
多米诺骨牌
查看>>
Linq 学习(1) Group & Join--网摘
查看>>
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
Attribute(特性)与AOP
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
HDUOJ ------1398
查看>>
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>