<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 魚上游 閱讀(1224) 評論(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

    搜索

    •  

    積分與排名

    • 積分 - 1267233
    • 排名 - 22

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 一级毛片免费播放视频| 亚洲精品av无码喷奶水糖心| 国产VA免费精品高清在线| 免费国产a国产片高清网站| 精品国产_亚洲人成在线| 在线精品免费视频| 亚洲av第一网站久章草| 国产精品成人四虎免费视频| 18禁亚洲深夜福利人口| yy6080亚洲一级理论| 国产免费A∨在线播放| 亚洲精品国产品国语在线| 国产偷伦视频免费观看| 亚洲AV午夜福利精品一区二区| 你懂的免费在线观看网站| 亚洲网站免费观看| 免费看韩国黄a片在线观看| 亚洲国产成人久久综合| 亚洲国产午夜福利在线播放| 女人隐私秘视频黄www免费| 亚洲精品成人av在线| 久久久久高潮毛片免费全部播放| 亚洲在成人网在线看| 午夜时刻免费入口| 国产日韩AV免费无码一区二区三区| 亚洲AV成人精品网站在线播放| 1024免费福利永久观看网站| 无码亚洲成a人在线观看| 亚洲av中文无码乱人伦在线r▽| 最近中文字幕免费完整| 亚洲日韩AV一区二区三区四区 | **一级一级毛片免费观看| 亚洲AV成人无码天堂| 免费在线观看中文字幕| 免费国产叼嘿视频大全网站| 亚洲人成www在线播放| 黑人大战亚洲人精品一区| 久久久久久精品成人免费图片| 久久亚洲精品成人无码| 欧洲亚洲国产清在高| 在线观看免费人成视频色9|