右旋字符串
這道題是比較常規的對字符串的復制操作,找到右旋部分的分界點是關鍵
代碼直接貼出來:
#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;}
};
今天有些疲憊,做的簡單字符串操作題,沒有太多思考,后續補上