我的个人博客

更多内容,请跳转我的个人博客

题目

Take a Ten Minute Walk

步行十分钟

描述

You live in the city of Cartesia where all roads are laid out in a perfect grid. You arrived ten minutes too early to an appointment, so you decided to take the opportunity to go for a short walk. The city provides its citizens with a Walk Generating App on their phones – everytime you press the button it sends you an array of one-letter strings representing directions to walk (eg. [‘n’, ‘s’, ‘w’, ‘e’]). You always walk only a single block for each letter (direction) and you know it takes you one minute to traverse one city block, so create a function that will return true if the walk the app gives you will take you exactly ten minutes (you don’t want to be early or late!) and will, of course, return you to your starting point. Return false otherwise.

Note: you will always receive a valid array containing a random assortment of direction letters (‘n’, ‘s’, ‘e’, or ‘w’ only). It will never give you an empty array (that’s not a walk, that’s standing still!).

你生活在卡特西亚市,那里所有的道路都以完美的网格布局。你提前十分钟到达,没有预约,所以你决定趁机去散散步。该市为市民的手机上提供了一个步行生成应用程序——每次你按下按钮,它都会向你发送一组表示步行方向的单字母字符串(如[n]、[s]、[w]、[e])。你总是只为每个字母(方向)走一个街区,你知道穿过一个城市街区需要一分钟,所以创建一个函数,如果应用程序给你的步行正好需要十分钟(你不想早或晚!),那么该函数将返回真值,当然,它会让你回到起点。否则返回false。

注意:您将始终收到一个包含随机方向字母组合的有效数组(“仅限n”、“s”、“e”或“w”)。它永远不会给你一个空数组(那不是散步,那是静止不动的!)。

例子

test.expect(is_valid_walk([‘n’,‘s’,‘n’,‘s’,‘n’,‘s’,‘n’,‘s’,‘n’,‘s’]), ‘should return True’);

test.expect(not is_valid_walk([‘w’,‘e’,‘w’,‘e’,‘w’,‘e’,‘w’,‘e’,‘w’,‘e’,‘w’,‘e’]), ‘should return False’);

test.expect(not is_valid_walk([‘w’]), ‘should return False’);

test.expect(not is_valid_walk([‘n’,‘n’,‘n’,‘s’,‘n’,‘s’,‘n’,‘s’,‘n’,‘s’]), ‘should return False’);

思路

其实本题的思路很简单,因为只要东 = 西,南 = 北,那么一定是能走到原点的,所以只要遍历列表,记录东西南北出现的次数即可,然后判断是否相等,就可以判断能否回到原点了

##完整代码

def is_valid_walk(walk):#determine if walk is valid# 东:e# 西:w# 南:s# 北:n# 如果长度不等于10,返回falseif len(walk) != 10:return False# 创建一个列表,用来保存东西南北分别出现的次数record = [0] * 4# 遍历for val in walk:if val == "e":record[0] += 1elif val == "w":record[1] += 1elif val == "s":record[2] += 1elif val == "n":record[3] += 1# 判断此时e == w和s == n:if (record[0] == record[1]) and (record[2] == record[3]):return Trueelse:return False

Take a Ten Minute Walk - 步行十分钟相关推荐

  1. linux十分钟调度一次,linux系统任务调度命令crontab

    循环重复的执行计划任务.有计划性的执行任务,像这种任务,在linux系统中就有cron命令来完成. linux系统下的任务调度分为两类:系统任务调度和用户任务调度. /etc/crontab文件就是系 ...

  2. 看后至少多活十年--只需十分钟

    看后至少多活十年--只需十分钟 看后至少多活十年--只需十分钟 -北大齐教授健康讲座笔录- 看后至少多活十年!!!~~~~不要死于无知~~~~不但要保养好自己,回家也要告诉父母这么做~~~~这是好东西 ...

  3. 【翻译】十分钟助您明晰方向、激发创造

    该图片由Colin Behrens在Pixabay上发布 前言 英文原文来自Medium Link: https://link.medium.com/D2uSLE0oQY Title: This 10 ...

  4. 只要十分钟让你和父母多活十年...

    -北大齐教授健康讲座笔录- 人的寿命应该能达到100 至175 岁,为什么都没有达到呢?最主要一个原因就是我们不重视保健,不懂得保健的知识.很多人死于无知,这很冤枉啊! 大家知道怎么保健吗?国际上有个 ...

  5. 十分钟成为 Contributor 系列 | 为 TiDB 重构 built-in 函数

    2019独角兽企业重金招聘Python工程师标准>>> 这是十分钟成为 TiDB Contributor 系列的第二篇文章,让大家可以无门槛参与大型开源项目,感谢社区为 TiDB 带 ...

  6. 用D3.js 十分钟实现字符跳动效果

    用D3.js 十分钟实现字符跳动效果 注 本文基于 D3.js 作者 Mike Bostock 的 例子 原文分为三部分, 在这里笔者将其整合为了一篇方便阅读. 该效果基于 D3.js, 主要使用到了 ...

  7. 飞机的“黑色十分钟”能被人工智能消灭吗?

    [导读]近年来,"AI的应用和落地"逐渐成了具化的关键词,它和很多事物很多行业结合在一起,形成了奇妙的"化学反应".例如,在日常生活中,AI可以推送我们喜欢的新 ...

  8. 十分钟上手2022latex安装与入门

    序言:本次下载是为美赛而用,因此我们选择的下载组合为texlive+texstudio,使用windows10安装.在此提醒大家,类似工具的下载建议大家亲历亲为,不要相信一些诱导性网站,都是非官方的安 ...

  9. 十分钟用Windows服务器简单搭建DHCP中继代理!!

                         十分钟用Windows服务器简单搭建DHCP中继代理!! 一.什么是中继代理? 大家都知道DHCP分配地址都需要用到IP广播,但是广播是不能在两个网段之间进行 ...

最新文章

  1. Laravel Lumen之Eloquent ORM使用速查-基础部分
  2. 给一个词就能模仿你的笔迹,Facebook这个AI强大到不敢开源代码
  3. java poll()是什么方法,JAVA学习中的一点小发现:LinkedList中.poll()方法在输出时使用应注意的小点...
  4. oracle分片键,数据库SQL语句及性能优化
  5. 【数据结构总结】第二章:线性表
  6. 玩转 SpringBoot 2.x 之自定义Starter依赖
  7. python与tkinter_python与tkinter编程
  8. int sel 在c语言表示,C语言教程ch1初识C程序.ppt
  9. NOR Flash的原理与操作
  10. FreeCAD开发:修改了源码,需要翻译成中文,如何更新语言包
  11. 某公司的雇员分为以下若干类
  12. HTML网页设计制作大作业 html+css+js萌宠之家 网页设计与实现
  13. android 360度环拍,Android 4.2系统360度全景图拍摄试玩
  14. 四旋翼无人机PID调节(无数次实验总结经验和理论支持)
  15. 如何区分光纤跳线的颜色?
  16. Unity集成Bugly踩坑
  17. dns服务器 性能测试,dns服务器性能测试报告.docx
  18. 当java碰到防火墙
  19. self-startup command line(or CLI) in windows
  20. 公共行政领域的7大数据科学应用场景案例

热门文章

  1. AQS简单介绍与使用
  2. Appscan安全扫描工具入门使用说明
  3. C++开发高级篇(转)
  4. 汽车蓝牙可能暴露千万司机的私人信息
  5. Java | 详解 Java 16 新特性 Record 记录类
  6. 解决pandas TypeError: bad operand type for unary ~: 'float'
  7. 详解k-means++
  8. 预约挂号系统day-01
  9. 【仿乐享微信源码分享】短短9分55秒,15万台小米手机3被抢购一空背后的秘密!
  10. 求最大字段和问题(常规法,分治法,动态规划法)