我是靠谱客的博主 曾经冬瓜,最近开发中收集的这篇文章主要介绍算法练习 2:翻转数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目:http://exercise.acmcoder.com/online/online_judge_ques?ques_id=1656&konwledgeId=134

算法分析

1.输入n、n个数据存入list1;

2.升序排列存为list2:list2=list1.sort

3.for :

    if list[head]==list2[head]: head++

    else: l=head

    if list1[end]==list2[end]:end--

    else: r=end;

4. if list[l:r]==reverse(list2): 输出yes

    else:输出no

代码练习

def getR():
    n = input()
    list1= map(int,raw_input().split())
    list2= sorted(list1)
    head = 0
    end = len(list1) - 1
    hStop = False
    eStop = False
    if list1 == list2:
        return 'yes'
    while(head < end):
        if (not hStop) and (list1[head] == list2[head]):
            head += 1
        else:
            hStop = True
        if (not eStop) and (list1[end] == list2[end]):
            end -= 1
        else:
            eStop = True
        if hStop and eStop:
            break
    if list(reversed(list1[head: end + 1])) == list2[head: end + 1]:
        return 'yes'
    else:
        return 'no'
print getR()

基础知识备注

1.raw_input()随便输都是字符串,而input()必须按照Python的规则来;

2.map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返

3.list内置sort()方法用来排序改变原list,sorted()来对可迭代的序列排序生成新的序列

4.Python逻辑运算符,以下假设变量 a 为 10, b为 20:

运算符

逻辑表达式

描述实例
andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。
orx or y布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False

5.break和continue

break跳出整个循环continue 语句跳出本次循环,

for letter in 'Python':

# 第一个实例

    if letter == 'h':

        break

    print '当前字母 :', letter


当前字母 : P
当前字母 : y
当前字母 : t

for letter in 'Python':

# 第一个实例

    if letter == 'h':

        continue

    print '当前字母 :', letter

当前字母 : P
当前字母 : y
当前字母 : t
当前字母 : o
当前字母 : n

-------------------------------------------------------------------------------------------------------------------

详细内容请关注公众号:目标检测和深度学习

------------------------------------------------------------------------------------------------------------------



最后

以上就是曾经冬瓜为你收集整理的算法练习 2:翻转数据的全部内容,希望文章能够帮你解决算法练习 2:翻转数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部