<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 61,  comments - 2033,  trackbacks - 0

    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}
    posted on 2005-11-28 10:38 魚上游 閱讀(1227) 評論(4)  編輯  收藏 所屬分類: 爪哇世界探險


    FeedBack:
    # re: GOOGLE挑戰賽練習題3及答案(1000分)
    2005-11-29 16:08 | 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多分,我覺的是時間的原因,這道題我做的很快就提交了  回復  更多評論
      
    # re: GOOGLE挑戰賽練習題3及答案(1000分)
    2005-11-29 16:13 | 胡子魚
    呵,是的,時間也是評分的一個重要因素。   回復  更多評論
      
    # re: GOOGLE挑戰賽練習題3及答案(1000分)
    2005-12-02 14:50 | space
    不行阿,all the same  回復  更多評論
      
    # re: GOOGLE挑戰賽練習題3及答案(1000分)
    2005-12-09 12:34 | emu
    沒有優化。其實可以直接定位到最后一次出現的“H”或者“E”的位置開始計算的。  回復  更多評論
      
    <2005年11月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    常用鏈接

    留言簿(82)

    隨筆分類(59)

    文章分類(21)

    相冊

    收藏夾(40)

    GoodSites

    搜索

    •  

    積分與排名

    • 積分 - 1267907
    • 排名 - 22

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 中文字幕不卡免费高清视频| 免费人成视频在线观看网站| 99视频免费观看| 久久精品国产精品亚洲| 免费人成网上在线观看| 四虎AV永久在线精品免费观看| 色在线亚洲视频www| 成人特黄a级毛片免费视频| 亚洲国产精品专区| 国产va精品免费观看| 国产亚洲国产bv网站在线| 青青视频观看免费99| 亚洲天堂2017无码中文| 在线免费观看一级片| 亚洲AV成人一区二区三区观看| 国产精品深夜福利免费观看| 在线观看亚洲电影| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲一级特黄特黄的大片| 成人免费视频一区二区三区| 亚洲av日韩av永久在线观看| 国产一区二区三区在线免费| 久久www免费人成看国产片| 亚洲AV无码一区二区大桥未久| 热久久精品免费视频| 成人免费网站视频www| 亚洲色成人WWW永久网站| 无码囯产精品一区二区免费| 亚洲第一页中文字幕| 成人黄软件网18免费下载成人黄18免费视频| 亚洲中文字幕乱码一区| 亚洲精品一级无码鲁丝片| 四虎国产精品永久免费网址 | 亚洲午夜电影在线观看| 日本一道高清不卡免费| 91国内免费在线视频| 亚洲成人黄色在线| 亚洲成a人无码av波多野按摩| 东方aⅴ免费观看久久av| 亚洲综合色婷婷在线观看| 亚洲精品国产精品乱码不卡√|