代码随想录刷题Day23
右旋字符串
这道题是比较常规的对字符串的复制操作,找到右旋部分的分界点是关键
代码直接贴出来:
#include<stdio.h>
#include<string.h>
int main(){int k;char s[10000];scanf("%d %s",&k,s);int cnt = 0;for(int i = strlen(s) - k;i<strlen(s);i++){printf("%c",s[i]);}for(int i = 0;i<strlen(s)-k;i++){printf("%c",s[i]);}return 0;}
如果原地操作的话,可以使用reverse函数对字符串三次逆转操作:整个字符数组的字符逆转、两段字符数组的逆转。
实现strStr()
从一个给定的字符串中找目标字符串,并返回出现的下标。我是直接按照字面意思,去查找。还没有去回顾使用KMP算法如何去设计这个算法。代码如下:
class Solution {
public:int strStr(string haystack, string needle) {int index = -1;for(int i = 0;i< haystack.size();i++){if(haystack[i]== needle[0]){int j = i,k = 0;for(j = i,k = 0;j<haystack.size()&&k<needle.size()&&haystack[j]==needle[k];j++,k++);if(k==needle.size()){index = i;break;}}}return index;}
};
今天有些疲惫,做的简单字符串操作题,没有太多思考,后续补上