首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >leetcode刷题系列/3

leetcode刷题系列/3

作者头像
用户9831583
发布2022-06-16 16:16:11
发布2022-06-16 16:16:11
2080
举报
文章被收录于专栏:码出名企路码出名企路

10,实现strStr

示例:

输入

输出

hello -> ll

2

aaaaaa->bba

-1

代码:

代码语言:javascript
复制
//实现 a="llhalalv" b="ha" 返回b在a中的第一次出现位置下标 2

#include <iostream>
using namespace std;

#include <string>


// int main()
// {
//     string strs="llhalalv",tar="ha";
//     int i=0,j=0;
//     while (strs[i]!='\0' && tar[j]!='\0')
//     {
//         if (tar[j] == strs[i])//判断是否相等
//         {
//             i++;
//             j++;
//         }
//         //不相等退回开得位置 i+1 ,j =0
//         else
//         {
//             i = i-j+1;
//             j = 0;
//         }
//     }
//     if (j == tar.length())//j为步长
//     {   
//         cout<< i - j<<endl;
//     }
//     return -1;
// }

int main()
{
    string strs="llhalalv",tar="ha";
    if (tar.empty())
    {
        return 0;
    }
    int pos = strs.find(tar);
    cout<< pos <<endl;
}

11,搜索插入位置

示例:

输入

输出

[1,3,5,6] ->5

2

[1,3,5,6]->2

1

代码:

代码语言:javascript
复制
//一排序数组 tar目边值所在位置 不存咋就插入合适位置

#include <iostream>
using namespace std;

#include <vector>

// int main()
// {
//     vector<int> nums{1,2,4,5,7,9};
//     int tar=7;
//     for (int i=0;i<nums.size();i++)
//     {
//         if (nums[i] >= tar)
//         {
//             cout<<i<<endl;
//         }
//     }
//     cout<<nums.size()<<endl;
    
// }

// int main()
// {
//     vector<int> nums{1,2,4,5,7,9};
//     int tar=7;
    
//     cout<< lower_bound(nums.begin(), nums.end(),tar) - nums.begin()<<endl;
    
// }

int main()
{
    vector<int> nums{1,2,4,5,7,9};
    int tar=7;
    
    vector<int>::iterator i = nums.begin(),j = nums.end();
    while (i < j)
    {
        auto mid = i + ((j - i)/2);
        if (*mid < tar)
        {
            i = mid + 1;
        }
        else
        {
            j = mid;
        }
    }
    cout<< i - nums.begin()<<endl;
    
}

12,最后一个单词的长度

示例:

输入

输出

hello world

5

xxx lll

3

代码:

//统计最后一个单词的长度

#include <iostream>

using namespace std;

#include <cstring>

#include <sstream>

#include <algorithm>

// int main()

// {

// string s="hello world lyywsh";

// istringstream in(s);//串流输入

// string res;

// while(in>>res);//依次输出一个单词组

// cout<< res.size()<<endl;

// }

// int main()

// {

// //char *s[]={"hello","world" ,"lyywsh"};

// const char *s="hello world lyywsh";

// int cnt=0;

// if(*s == ' ')

// cout<<cnt<<endl;

// int len=strlen(s);

// if(len == 1)

// cout<<((s[0]==' ')?0:1)<<endl;

// for(int i=len-1; i>=0;i--)

// {

// if(s[i]!=' ')

// cnt++;

// if(s[i]==' ' && cnt>0)

// break;

// }

// cout<<cnt<<endl;

// }

//从后向前,找出第一个不是空格的地方命名为end, 再从end向前,找出第一个空格的地方命名为start,end-start

int main()

{

//char *s[]={"hello","world" ,"lyywsh"};

const char *s="hello world lyywsh";

int end=strlen(s)-1;

int start=0;

int res=0;

while(end>=0 && s[end]==' ')

end--;

start=end;

while(start>=0&&s[start]!=' ')

start--;

res=end-start;

cout<<res<<endl;

}

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码出名企路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档