Vincent.Chan‘s Blog

          常用鏈接

          統計

          積分與排名

          網站

          最新評論

          GOOGLE挑戰賽練習題3及答案(1000分)

          Problem Statement

               When editing a single line of text, there are four keys that can be used to move the cursor: end, home, left-arrow and right-arrow. As you would expect, left-arrow and right-arrow move the cursor one character left or one character right, unless the cursor is at the beginning of the line or the end of the line, respectively, in which case the keystrokes do nothing (the cursor does not wrap to the previous or next line). The home key moves the cursor to the beginning of the line, and the end key moves the cursor to the end of the line.

          You will be given a int, N, representing the number of character in a line of text. The cursor is always between two adjacent characters, at the beginning of the line, or at the end of the line. It starts before the first character, at position 0. The position after the last character on the line is position N. You should simulate a series of keystrokes and return the final position of the cursor. You will be given a String where characters of the String represent the keystrokes made, in order. 'L' and 'R' represent left and right, while 'H' and 'E' represent home and end.

          Definition

              
          Class: CursorPosition
          Method: getPosition
          Parameters: String, int
          Returns: int
          Method signature: int getPosition(String keystrokes, int N)
          (be sure your method is public)

           

           

           1public class CursorPosition
           2{
           3
           4        public int getPosition(String ks,int len)
           5        {
           6                int pos = 0;
           7                char c ;
           8                for(int i=0;i<ks.length();i++)
           9                {
          10                        c = ks.charAt(i);
          11
          12                        if(c=='E')
          13                        {
          14                                pos = len;
          15                        }

          16                        else if(c=='H')
          17                        {
          18                                pos = 0;
          19                        }

          20                        else if(c=='L')
          21                        {
          22                                if(pos>0)
          23                                {
          24                                  pos--;
          25                            }

          26                        }

          27                        else if(c=='R')
          28                        {
          29                                if(pos<len)
          30                                {
          31                                  pos++;
          32                            }

          33
          34                        }

          35                }

          36
          37        return pos;
          38        }

          39
          40}

          Feedback

          # re: GOOGLE挑戰賽練習題3及答案(1000分)   回復   

          2005-11-29 16:08 by superwu
          public class CursorPosition {
          public int getPosition(String keystrokes, int N){
          int current=0;
          int end=N;
          int start=0;


          for(int i=0;i<keystrokes.length();i++){
          char c=keystrokes.charAt(i);
          switch(c){
          case 'L':
          if(current!=start)current--;break;
          case 'R':
          if(current!=end)current++;break;
          case 'H':
          current=0;break;
          case 'E':
          current=N;break;
          }
          }
          return current;
          }
          public static void main(String[] args) {
          CursorPosition c=new CursorPosition2();
          System.out.println(c.getPosition("ERLLL",10));
          }

          }
          這道題和你做的幾乎一樣,效率上應該沒有太大差別
          但我的了920多分,我覺的是時間的原因,這道題我做的很快就提交了

          posted on 2006-02-13 21:38 Vincent.Chen 閱讀(3136) 評論(0)  編輯  收藏 所屬分類: 雜文

          主站蜘蛛池模板: 若尔盖县| 山阳县| 宁德市| 寻乌县| 西平县| 镇江市| 高雄县| 鄂州市| 瓮安县| 社会| 平原县| 景泰县| 盱眙县| 虹口区| 恩施市| 巩义市| 连云港市| 万载县| 望奎县| 正蓝旗| 汽车| 白玉县| 衡阳县| 余姚市| 洞头县| 镇沅| 筠连县| 义马市| 馆陶县| 武鸣县| 高淳县| 吉木乃县| 双柏县| 乌兰察布市| 华阴市| 七台河市| 惠州市| 邯郸市| 五寨县| 分宜县| 贵阳市|