一、函数的运用

1,strstr(a,b);

判断b是否为a的子串,如果是,返回从b的开头开始到a的结尾

如“abcdefgh” “de”

返回“defgh”;

如果不是子串,返回NULL;

2,memcpy(a,b+n,c);

将b串从第n位后的c个字符串复制到a中,返回a串;

(注:做完函数后需要添加上b[c] = '\0')

如果吧b+n换成b就是从头开始

将代码换成

memcpy(arr[cnt], words[i], strlen(words[i])+);

就是直接复制words[i];

二、malloc开辟二维字符串;

首先开辟一个指向字符串指针的指针;

char **arr = (char**)malloc(sizeof(char*)*wordsSize);

等判断出适合题目的子串后

再开辟一个字符串指针

arr[cnt] = (char*)malloc(sizeof(char)*(strlen(words[i])+1));

最后代码如下

 char ** stringMatching(char ** words, int wordsSize, int* returnSize){
int cnt = ;
char **arr = (char**)malloc(sizeof(char*)*wordsSize);
for(int i = ; i < wordsSize; i++)
{
for(int j = ; j < wordsSize; j++)
{
if(i != j)
{
if(strstr(words[j],words[i]) != NULL)
{
arr[cnt] = (char*)malloc(sizeof(char)*(strlen(words[i])+));
memcpy(arr[cnt], words[i], strlen(words[i])+);
//上面两行+1是为了多开辟一个空间给arr[cnt]存下words[i]字符串后末尾的'\0'
//因为strlen函数返回的长度是不包含'\0'的长度
//且memcpy返回的arr在字符串结束后最后一位是没有'\0'
//一定要记住加'\0'!!不然会越界!
cnt++;
break;
}
}
}
}
*returnSize = cnt;
return arr; }

(希望下次easy题不要再抄作业了 ̄ω ̄)

leetcode 第184场周赛第一题(数组中的字符串匹配)的更多相关文章

  1. 【LeetCode】1408. 数组中的字符串匹配 String Matching in an Array

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 暴力遍历 日期 题目地址:https://leetco ...

  2. Leetcode第 217 场周赛(思维量比较大)

    Leetcode第 217 场周赛 比赛链接:点这里 做完前两题我就知道今天的竞赛我已经结束了 这场比赛思维量还是比较大的. 1673. 找出最具竞争力的子序列 题目 给你一个整数数组 nums 和一 ...

  3. LeetCode 第 165 场周赛

    LeetCode 第 165 场周赛 5275. 找出井字棋的获胜者 5276. 不浪费原料的汉堡制作方案 5277. 统计全为 1 的正方形子矩阵 5278. 分割回文串 III C 暴力做的,只能 ...

  4. Leetcode 春季打卡活动 第一题:225. 用队列实现栈

    Leetcode 春季打卡活动 第一题:225. 用队列实现栈 Leetcode 春季打卡活动 第一题:225. 用队列实现栈 解题思路 这里用了非常简单的思路,就是在push函数上做点操作,让队头总 ...

  5. js 查找数组中某个字符出现的次数

    1. js 查找数组中某个字符出现的次数 代码示例 let arr = ['asd', 'green', 'yeadt', 'red', 'wati', 'red', 'red'] let index ...

  6. Leetcode 第133场周赛解题报告

    今天参加了leetcode的周赛,算法比赛,要求速度比较快.有思路就立马启动,不会纠结是否有更好的方法或代码可读性.只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了. 比赛时先看的第二题,一看 ...

  7. LeetCode第151场周赛(Java)

    这是我第一次写周赛的题目,而且还是虚拟的.从这次起,以后就将所有错过的题目都写到博客来.当然既然是我错的,那代码肯定不是我自己的.我会注明来源.并且我会自己敲一遍.多总结总是没坏处的. 另外比较糟糕的 ...

  8. Leetcode 第137场周赛解题报告

    今天的比赛的题目相对来说比较「直白」,不像前几周都是一些特定的算法,如果你没学过不可能想出来. 做了这些周,对leetcode比赛的题目也发现了一些「规律」. 一般前两道题都很「简单」,只要有想法,直 ...

  9. Leetcode 第136场周赛解题报告

    周日的比赛的时候正在外面办事,没有参加.赛后看了下题目,几道题除了表面要考的内容,还是有些能发散扩展的地方. 做题目不是最终目的,通过做题发现知识盲区,去研究学习,才能不断提高. 理论和实际是有关系的 ...

随机推荐

  1. Python之学会测试,让开发更加高效(一)

      前几天,听了公司某位大佬关于编程心得的体会,其中讲到了"测试驱动开发",感觉自己的测试技能薄弱,因此,写下这篇文章,希望对测试能有个入门.这段时间,笔者也体会到了测试的价值,一 ...

  2. 手机app抓包[小米]

    方案一:(手机电脑在同一wifi下) 打开burp设置代理 这里的ip为电脑的ip 手机手动设置代理为电脑的ip+8080 导入证书 电脑上下载下证书(http://burp) 传到手机上

  3. React Native 在 Airbnb 的起起落落

    写在前面 Airbnb 早在 2016 年就上了 React Native 大船,是很具代表性的先驱布道者: In 2016, we took a big bet on React Native. T ...

  4. Omnicore RPC API中文文档

    2019独角兽企业重金招聘Python工程师标准>>> OmniCore是比特币核心的一个分支,它在比特币协议之上实现了一个新的Omni协议层,用于代币发行.众售等应用,USDT就是 ...

  5. 2019-2020 ICPC, Asia Jakarta Regional Contest A. Copying Homework (思维)

    Danang and Darto are classmates. They are given homework to create a permutation of N integers from  ...

  6. nginx的数据结构集合(随时更新)

    在学习nginx的时候,因为其数据结构略多,看过后一般就忘记了.所以边学习边记录在这里吧,方便以后查看. ngx_buf_t:缓冲区结点 1: typedef struct ngx_buf_s ngx ...

  7. vue-infinite-scroll------vue的无线滚动插件

    vue-infinite-scroll------vue的无线滚动插件 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 V ...

  8. 【跟我一起读 linux 源码】总述

    经过之前的一个系列学习,自己照着书本 <操作系统真相还原>学着做了一个 demo 级别的操作系统,总算对操作系统的整体和细节有了一个粗浅的了解.但写操作系统不是目的(我目前也没这能力),主 ...

  9. LeetCode--Array--Remove Duplicates from Sorted Array (Easy)

    26. Remove Duplicates from Sorted Array (Easy) Given a sorted array nums, remove the duplicates in-p ...

  10. Qt之分模块log

    说明 对于一般的log,使用 qInstallMessageHandler 重定向到文件即可,甚至可以根据日志等级,分类存储.但是并不是适用所有情况,比如,程序运行时动态创建模块,而每个模块需要创建不 ...