• 解题:最后一个单词长度[难度中]

    2015/11/12 JSRGFJZ 24 评论

题目:

对于字符数组,求出最后一个单词的长度。

示例:

输入:

输出:

 

【解题提示】:

  • 请在评论中先给出你的实现思路;
  • 然后贴出实现的代码;
  • 编程语言不限;
  • 评论支持代码高亮,请点击评论框菜单栏上的 <> 按钮;
2 3 收藏


直接登录
最新评论
  • String [] args1= str.split(” “);
    if(args.length>0)
    return args1[args.length-1].length();

  • wagaga   2015/11/12

    return s.length() – (s.lastIndexOf(‘ ‘) + 1)

  • wohenshuai   2015/11/12

    对对,我想的也是用正则表达式对字符串进行分组,然后直接取最后一个单词,找其长度

  • Cmder Cmder 2015/11/12

    恩,思路不错!

  • 被藏在夏天里的你 学生 2015/12/02

    string[] st_a = st.Split(‘ ‘);
    int totall_length = st_a.Length;
    string last_word = st_a[totall_length – 1];
    int length = last_word.Length;
    Console.WriteLine(“最后一个单词的长度为:{0}”,length);

  • String ss=”hello world 22**99″;
    int len=ss.lastIndexOf(” “);
    System.out.println(“长度为:”+ss.substring(len, ss.length()-1).length());

  • 工程师   2016/07/16

    我用JavaScript的 只要lastindexof从后面往前找空格的位置 再用字符串长度减去位置再减1不就搞定了吗

  • 用Pascal把字符串倒过来然后pos找第一个空格位置—1输出就好了啊

  • 这么简单都尼玛难度是中?

  • 王念一 高二学生 2016/09/22

    JavaScript 乱入lol

  • 行歌   2016/09/22

    public static int lastWordsLength(String str){
    if(str==null){
    throw new IllegalArgumentException(“对于你这种输入,我不说话,只想默默的给你一堆BUG”);
    }else{
    //去首尾空格
    str = str.trim();
    //不调用API
    for (int i = str.length()-1; i > 0; i–) {
    if(str.charAt(i)==’ ‘){//此位置是空格
    System.out.println(str.length()+”:”+i);
    return str.length()-1-i;
    }
    }
    return str.length();
    }
    }

  • 多年以後 嵌入式软件开发 2016/09/22

    没学过javascript,不知道字符串最后补几个空格,你们那个lastindexof还能用不?

  • 用lastindexof(‘ ‘)确定最后一个单词的索引位置,或者用正则匹配。

  • Jerry   2016/12/06

    unsugned char j=0,k=0;

    unsigned long i=0; 

    while(p[i])

    {  

      if((p[i]>’A’&&p[i]<‘Z’)||(p[i]>’a’&&p[i]<‘z’))j++;

    //判断是否是字母,是字母记录字数

     else //不是字母则保存前一个单词字数

     {if(j!=0){k=j;j=0;}}

     i++;

    if(j!=0){k=j;j=0;}

    //最后字符是字母时,记录最后一个单词字数

    printf(“%d”,k);//输出字数k

  • MCL   2016/12/08

    import re

    Strs = r ‘wjdjwveb eidhwjsv diwqbduxb _iidkw(skdnwj !’

    mSplit = re.split(‘/W’, Strs)

    len(mSplit[-1])

  • String[] str=s.split(“\\W”);

    输出str[str.length-1].length();

  • Remixˉ   2016/12/11

     

  • 如果str长度超出Integer.MAX_VALUE,如何处理?

     

  • 可健康了 程序员 2016/12/14

     

  • s=’hello world’;
    n=length(s);
    for i=n:-1:1
    if(s(i)==’ ‘)
    break
    end
    end
    l=n-i;

  • 试了一下,用c语言,只要最后一个单词后面没有空格就ok, 例如“hello world”, 最后有空格就不对 “hello world    ”这样就不对。程序还需改进。

  • while(gets(str))     刚学c   用的c   求简化,我正向思考的   好像 反向思考 更简单。

    { int count;

    count = 0;

    len = strlen(str);

    int f = 0;

    int k;

    for(i = 0; i <= len ; i++)

    {

    if(f == 1) break;

    if((str[i] >= ‘a’ && str[i] <= ‘z’) || (str[i] >= ‘A’ && str[i] <= ‘Z’))

    { for(j = i; j <= len; j++)

    { if((str[j] >= ‘a’ && str[j] <= ‘z’) || (str[j] >= ‘A’ && str[j] <= ‘Z’ )) count++;

    else if(str[j] == ‘ ‘ )

    { for(k = j +1; k < len; k++)

    { if(str[k] == ‘ ‘) continue;

    else if((str[k] >= ‘a’ && str[k] <= ‘z’) || (str[k] >= ‘A’ && str[k] <= ‘Z’ ))

    { count = 0;break; } }

    }

    else if(str[j] == ‘\0’)

    { f = 1; break; }          } } }

    printf(“%d\n”, count );

    }