`
bibiye
  • 浏览: 172973 次
社区版块
存档分类
最新评论

GOOGLE挑战赛练习题1及答案(200分)

阅读更多

Problem Statement

     A simple line drawing program uses a blank 20 x 20 pixel canvas and a directional cursor that starts at the upper left corner pointing straight down. The upper left corner of the canvas is at (0, 0) and the lower right corner is at (19, 19). You are given a String[], commands, each element of which contains one of two possible commands. A command of the form "FORWARD x" means that the cursor should move forward by x pixels. Each pixel on its path, including the start and end points, is painted black. The only other command is "LEFT", which means that the cursor should change its direction by 90 degrees counterclockwise. So, if the cursor is initially pointing straight down and it receives a single "LEFT" command, it will end up pointing straight to the right. Execute all the commands in order and return the resulting 20 x 20 pixel canvas as a String[] where character j of element i represents the pixel at (i, j). Black pixels should be represented as uppercase 'X' characters and blank pixels should be represented as '.' characters.

Definition

    
Class: DrawLines
Method: execute
Parameters: String[]
Returns: String[]
Method signature: String[] execute(String[] commands)
(be sure your method is public)

 

  1public class DrawLines
  2{
  3  class Pos
  4  {
  5    private int X;
  6    private int Y;
  7    private String status = ".";
  8
  9    public Pos(int x,int y)
 10    {
 11      this.X = x;
 12      this.Y = y;
 13      this.status = ".";
 14    }

 15
 16    public int getX()
 17    {
 18      return X;
 19    }

 20
 21    public int getY()
 22    {
 23      return Y;
 24    }

 25
 26    public void setX(int x)
 27    {
 28      this.X = x;
 29    }

 30
 31    public void setY(int y)
 32    {
 33      this.Y = y;
 34    }

 35
 36    public void setStatus(String s)
 37    {
 38      this.status = s;
 39    }

 40
 41    public String getSatus()
 42    {
 43      return status;
 44    }

 45
 46    public void showPos()
 47    {
 48      String xStr=X+"";
 49      String yStr=Y+"";
 50
 51      if(X<10)
 52      {
 53        xStr = "0"+xStr;
 54      }

 55
 56      if(Y<10)
 57      {
 58        yStr = "0"+yStr;
 59      }

 60    }

 61  }

 62
 63  public int min = 0, max = 19;
 64  public int North = 1, South = 3, West = 2, East = 0;
 65  public String LEFT = "LEFT", FORWARD = "FORWARD";
 66  public Pos[][] map = null;
 67
 68
 69
 70  public DrawLines()
 71 {
 72   this.direction = South;
 73   pos = new Pos(0,0);
 74
 75   //走之前初始化地图.
 76   map = new Pos[max + 1][max + 1];
 77   for(int row = 0;row<=max;row++)
 78   {
 79     for(int col=0;col<=max;col++)
 80     {
 81       map[row][col] = new Pos(row,col);
 82     }

 83   }

 84 }

 85
 86  public void showMap()
 87  {for (int col = 0; col <= max; col++)
 88
 89    {
 90      for (int row = 0; row <= max; row++)
 91      {
 92        System.out.print(map[row][col].getSatus());
 93      }

 94      System.out.println(); 
 95    }

 96  }

 97
 98  private Pos pos = null;
 99  private int direction = South;
100
101  public Pos getPos()
102  {
103    return pos;
104  }

105  public void setPos(Pos pos)
106  {
107    this.pos = pos;
108  }

109  /** *//**
110   *
111   * @param cmd
112   */

113  public void execute(String cmd)
114  {
115    if (cmd.equals("LEFT"))
116    {
117      Left();
118    }

119    else if (cmd.indexOf(FORWARD) >= 0)
120    {
121      int from = cmd.indexOf(FORWARD);
122      String stepStr = cmd.substring(from + FORWARD.length());
123      stepStr = stepStr.trim();
124      int step = Integer.parseInt(stepStr);
125      forward(step);
126    }

127    else
128
分享到:
评论

相关推荐

    Google中国编程大赛入围赛真题

    在Google中国编程大赛中,参赛者们通常会面临一系列挑战性的题目,旨在考察他们的编程技能、算法理解以及问题解决能力。本次入围赛的真题包含了两个文档:Google750.doc和Google-250.doc,很可能是两道不同难度级别...

    世界五百强面试题答案等

    【标题解析】:“世界五百强面试题答案等”这一标题暗示了内容可能涉及全球顶级企业的面试问题及其解答。世界五百强通常指的是《财富》杂志每年评选出的世界最大的500家企业,这些公司涵盖各行各业,包括科技、金融...

    CodeJamAfrica2010:来自 Google Code Jam Africa 2010 的练习题

    【标题】:“CodeJamAfrica2010:来自 Google Code Jam Africa 2010 的练习题” 这个标题指的是Google Code Jam Africa 2010编程竞赛中的练习题目集。Google Code Jam是谷歌举办的一项国际性的编程竞赛,旨在挑战...

    google_codejam:Google Codejam挑战的代码

    1. **练习历年的题目**:Google Codejam的历年试题是极好的学习资源,通过实践可以熟悉比赛的风格和难度。 2. **参加模拟赛**:许多社区和网站提供模拟比赛环境,模拟真实的比赛场景。 3. **阅读他人的解决方案**...

    Google竞赛题(c语言)

    8. **算法和数据结构**:Google竞赛通常涉及算法挑战,如排序(快速排序、归并排序、冒泡排序等)、搜索(二分查找、广度优先搜索、深度优先搜索等)以及经典数据结构(链表、栈、队列、树、图等)的应用。...

    GoogleCodeJam:我的模板和练习题解决方案

    这个压缩包可能包含了某位参赛者或爱好者在准备比赛过程中使用的个人模板和已解练习题的解决方案。主要标签是“Java”,意味着这些模板和解决方案主要使用Java语言编写。 在Google Code Jam中,参赛者通常会遇到...

    第一届“中国软件杯”大学生软件设计大赛题目副本.pdf

    然而,传统的通用搜索引擎,如Google、百度、Yahoo,虽然能帮助用户在海量网络数据中找到信息,但它们在处理特定领域或主题的深度信息时往往力有不逮。第一届“中国软件杯”大学生软件设计大赛的赛题正是围绕这一...

    CTF Web解题大解密:如何找到神秘的Flag,成为夺旗赛的MVP

    9. **模拟实战训练**:参与各种公开的CTF挑战,如PicoCTF、CTFtime上的赛事,以及各种在线平台提供的练习题,都能帮助你积累实战经验,提高解题速度。 10. **心态调整**:CTF比赛往往充满挑战,保持冷静,勇于尝试...

    2023年美赛备赛指南拿奖须知

    9. **模拟训练**:提前参加模拟赛或练习题,以熟悉比赛流程和提高解题效率。这也有助于团队磨合,找出并改善合作中的不足。 10. **创新与批判性思维**:除了技术层面,评委还会看重创新性和批判性思维。尝试提出...

    leetcode双人赛-acm-challenge-workbook:acm-挑战-工作簿

    leetcode双人赛 1 前言 项目为习题册攻略,已完结。可配合书籍或笔记,系统学习算法。 题量:约200道,代码注释内含详解。 难度:总体高于Leetcode,部分接近ACM。 题解:代码均AC,题解个人向;Bug或优化请建Issue...

    挑战程序设计竞赛(第2版)1

    在当今这个信息技术飞速发展的时代,程序设计竞赛已经成为了检验程序员综合实力的舞台,尤其是对于那些向往挑战、渴望突破自我的程序员和计算机专业学生来说,它们提供了展示才华和学习交流的宝贵机会。《挑战程序...

    挑战编程英文版(全)en-all

    为了提高读者的实战能力,书中提供了大量的练习题和模拟赛,涵盖不同难度级别,鼓励读者通过实践来巩固所学知识。此外,还介绍了如何利用在线评测平台进行自我测试,比如Codeforces、HackerRank、LeetCode等,这些...

    google算法编程大赛.rar

    《谷歌算法编程大赛:历练与提升》 谷歌算法编程大赛是全球范围内备受瞩目的技术竞赛,每年都会吸引众多编程爱好者和专业人士参与。这个赛事旨在检验参赛者的算法设计、问题解决以及编程技能,通过一系列富有挑战性...

    leetcode双人赛-C:acm-挑战-工作簿

    leetcode双人赛 1 前言 项目为习题册攻略,已完结。可配合书籍或笔记,系统学习算法。 题量:约200道,代码注释内含详解。 难度:总体高于Leetcode,部分接近ACM。 题解:代码均AC,题解个人向;Bug或优化请建Issue...

    Stanford CS231n 2017 spring slides

    在ImageNet大规模视觉识别挑战赛(ILSVRC)中,深度学习模型的表现逐年提高,大大降低了错误率,标志着计算机视觉进入了一个新纪元。 四、计算机视觉应用 除了图像分类,深度学习还被广泛应用于物体检测、语义分割...

    美赛备赛五问五答.pdf

    《美赛备赛五问五答》这篇指南主要围绕美国大学生数学建模竞赛(MCM/ICM,简称“美赛”)的备赛策略展开,旨在为参赛者提供宝贵的指导。美赛是一项全球性的数学建模竞赛,旨在提升学生的数学建模能力、团队合作精神...

    比赛:比赛问题

    在IT领域,特别是编程竞赛和算法设计中,"比赛:比赛问题"的标题和描述可能是指参与编程竞赛时遇到的问题,比如ACM/ICPC、Google Code Jam、LeetCode竞赛等。这些比赛通常要求参赛者解决一系列算法和数据结构相关的...

    Google_Contests

    8. 参加模拟比赛和练习题,以提高解题速度和准确度。 通过这些努力,你将在Google的编程比赛中提升自己的竞争力,并有机会与全球的顶尖程序员一较高下。记住,持续学习和实践是提升技能的关键。

    电赛历年试题&经验分享&代码程序资源.docx

    ### 电赛历年试题、经验分享及代码程序资源详尽指南 #### 一、电赛历年试题 **电赛背景简介** 电赛,即电子设计竞赛,是一项旨在培养大学生创新能力、团队协作能力和工程实践能力的比赛。它通常涵盖电子电路设计...

Global site tag (gtag.js) - Google Analytics