电商网站都是用什么做的,网站服务器维护方案,购物网站开发需要什么技术,建设一个门户网站目录
一、题目描述
二、初次解答
三、官方解法
四、总结 一、题目描述 二、初次解答
1. 思路#xff1a;双指针法。low指向单词头#xff0c;high指向单词后的空格#xff0c;则high-low就是每个单词的长度。算法步骤#xff1a;①low从头往后查找第一个非空格的字符双指针法。low指向单词头high指向单词后的空格则high-low就是每个单词的长度。算法步骤①low从头往后查找第一个非空格的字符high从low后面查找空格或者\0定位好位置后计算high-low。②让lowhigh1计算后续字符串的长度重复步骤①。
2. 代码
int lengthOfLastWord(char* s) {int retLen 0;int low 0, high 0;while (s[low] ! \0) {//low从前往后找到非空格的字符while (s[low] || s[low] \0) {if (s[low] \0) {return retLen;}low;}//high从low之后找到空格high low 1;while (s[high] ! ) {if (s[high] \0) {return high - low;}high;}//high和low之间的差值就是每个单词的长度retLen high - low;low high 1;}return retLen;
}
3. 优点即使写了嵌套循环实则只遍历了一遍时间复杂度为O(n)执行速度快。 4. 缺点暂无。
三、官方解法
反向遍历数组。我也想到了这个方法但是由于没有给定数组的长度需要手动遍历数组到末尾然后再从末尾反向找到最后一个单词的头。这就会增加执行时间对于Hello 这种情况相当于遍历了两边数组得不偿失。
四、总结
获取字符串中最后一个单词的长度可以使用双指针法。