【发布时间】:2016-04-20 13:56:18
【问题描述】:
我想找出给定字符串 (a) 中最后一个单词的长度。单词被定义为没有空格('')的字符序列。条件是不要使用任何库函数来执行此操作。我知道它在 C++ 中是可能的。它也可以用Java完成吗? 我使用以下方法做到了:
for(char c:a.toCharArray()) //this is not correct though. I need one without using an inbuilt method(considering its possible)
有没有不使用库函数的方法?
编辑:
这是 C++ 中的解决方案。请注意,它在任何时候都不使用库函数,甚至 strlen()。
class Solution {
public:
int lengthOfLastWord(const string &s) {
int len = 0;
while (*s) {
if (*s != ' ') {
len++;
s++;
continue;
}
s++;
if (*s && *s != ' ') len = 0;
}
return len;
}};
【问题讨论】:
-
库函数是什么意思?如果你可以使用
toCharArray(),你可以使用String.split()吗? -
“不使用任何库函数”是什么意思?
-
如果您希望能够找到其中的最后一个空格,您将不得不使用某种库函数来访问字符串的各个字符。
-
任何内置方法是什么?因为要操作字符串,您必须使用字符串方法。解决它的唯一方法是欺骗并使用反射来访问字符串的私有内部状态。但这将使用除 String 之外的许多其他类的方法。这个练习毫无意义。
-
没有。指针在 java 中不是一个有效的概念。至少不像 C++ 那样。