<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

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 另类小说亚洲色图| 亚洲视频免费观看| 亚洲第一区精品日韩在线播放| 91情国产l精品国产亚洲区| 成人免费乱码大片A毛片 | 亚洲av无码成人影院一区 | 一级特黄色毛片免费看| 午夜亚洲av永久无码精品| 丰满亚洲大尺度无码无码专线| 卡1卡2卡3卡4卡5免费视频| 亚洲日日做天天做日日谢| 又硬又粗又长又爽免费看| 亚洲国产精品碰碰| 国产精品成人啪精品视频免费| 午夜影视在线免费观看| 国产亚洲综合一区柠檬导航| 9i9精品国产免费久久| 亚洲国产一二三精品无码| 拍拍拍无挡免费视频网站| 国产精品免费视频一区| 国产成人综合久久精品亚洲| 亚洲?V无码成人精品区日韩| 国产精品综合专区中文字幕免费播放| 久久久久亚洲AV无码专区桃色| 在线观看亚洲AV日韩AV| 久久99免费视频| 亚洲精品网站在线观看你懂的| 2021久久精品免费观看| 亚洲国产精品成人综合色在线| 亚洲国产精品嫩草影院久久| 久久久久国产精品免费看| 亚洲国产精品综合久久2007| 曰皮全部过程视频免费国产30分钟| 美女羞羞视频免费网站| 成年性午夜免费视频网站不卡| 亚洲bt加勒比一区二区| 日韩精品成人无码专区免费| 亚洲黄色免费网站| 日韩免费无砖专区2020狼| 中国一级特黄的片子免费 | 亚洲日韩av无码|