美文网首页
最后一个单词的长度

最后一个单词的长度

作者: VIP牧o羊人 | 来源:发表于2018-04-12 20:17 被阅读0次

    题目

    测评地址
    牛客网
    计蒜客

    给定由大写,小写字母和空格组成的字符串,返回 最后 一个单词的长度。
    如果输入中不存在单词,返回 00。
    注意:
    “单词”是指不包含空格符号的字符串
    例如:
    对于字符串"hello World"(不带引号), 那么返回的结果是 55;
    对于字符串"abc abc "(不带引号),那么返回的结果就是 33。
    输入格式
    输入仅一行,为字符串 ss(长度不超过 1000010000)。
    输出格式
    输出 ss 中最后一个单词的长度。

    样例输入1

    Today is a nice day
    

    样例输出1

    3
    

    样例输入2

    The quick brown fox jumps over the lazy dog   
    

    样例输出2

    3
    

    正解

    #include "bits/stdc++.h"
    using namespace std;
    int main()
    {
        string str;
        while(cin >> str);
        cout << str.length();
        return 0;
    }
    

    上面的方法可能跳不出循环,原因是stdin不断地等待键盘的输入
    但测试时,其输入会结束,如将stdin重定向为文件
    测试代码如下

    #include "bits/stdc++.h"
    using namespace std;
    int main()
    {
        freopen("./1.txt","r",stdin);
        string s;
        while(cin>>s);
        cout<<s.length();
        return 0;
    }
    

    其中1.txt内容如下

    The quick brown fox jumps over the lazy dog  
    

    注意 "dog" 后的空格
    输出样例

    3
    

    错解

    import java.util.*;
    public class Main {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            String input=sc.nextLine();
            String[]temp=input.split(" ");
            System.out.print(temp[temp.length-1].length());
        }
    }
    
    #include "bits/stdc++.h"
    using namespace std;
    int main()
    {
        char str[5005];
        gets(str);
        int len=strlen(str),i=len-1;
        for(; i>-1; i--)
        {
            if(str[i]==' ')
                break;
        }
        cout<<(len-1-i)<<endl;
        return 0;
    }
    
    //考虑"hello world   "(结尾空格)这种情况,故不能使用从后往前数到空格为止 
    #include "bits/stdc++.h"
    using namespace std;
    int main()
    {
        char str[5005];
        gets(str);
        int len=strlen(str),ans=0;
        const char *sep = " ";
        char *p = strtok(str, sep);
        while(p)
        {
            ans=strlen(p);
            if(!(p = strtok(NULL, sep)))
            {
                cout<<ans<<endl;
                break;
            }
        }
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:最后一个单词的长度

          本文链接:https://www.haomeiwen.com/subject/azvfkftx.html