classSolution{public:string reverseOnlyLetters(string s){//快排hoare法单趟string ret(s);int left =0;int right = ret.size()-1;while(left < right){while(left < right &&!isalpha(ret[right])){right--;}while(left < right &&!isalpha(ret[left])){left++;}swap(ret[left], ret[right]);left++;right--;}return ret;}};
3. 字符串中唯一字母
题目信息:
题目连接: 字符串中唯一字母
思路:暴力求解
classSolution{public:intfirstUniqChar(string s){for(int i =0; i < s.size(); i++){int flag =1;//暴力查找for(int k =0; k < s.size();){if(k == i){k++;continue;}//漏掉前面的字符if(s[i]== s[k]){flag =0;break;}k++;}//找到存在唯一字符if(flag){return i;}}return-1;}};
4. 字符串中最后一个单词
题目信息:
题目链接: 字符串最后一个单词的长度
intmain(){string str;//遇到' '字符不停读取,一次读取一行getline(cin, str);int cur = str.length()-1;int i =0;while(str[cur]!=' '&& cur >=0){cur--;i++;}cout << i;return0;}
classSolution{public:string reverseStr(string s,int k){string rs(s);int len = rs.length();for(int i =0; i < len; i +=2* k){reverse(rs.begin()+ i, rs.begin()+min(i + k, len));}return rs;}};
7. 反转字符串中的单词
题目信息:
题目链接: 反转字符串中的单词
classSolution{public:string reverseWords(string s){string rs(s);int n = rs.length();int count =0;for(int i =0; i < n; i++){if(rs[i]==' '){reverse(rs.begin()+ count, rs.begin()+ i);count = i +1;}if(i == n -1){reverse(rs.begin()+ count, rs.end());}}return rs;}};
示例代码:
public class TestArray {public static void main(String[] args) {/*测试整数型一维数组*/int[] s;//声明s是一个整数数组类型s new int[10];//将s实例化,也就是分配内存空间,真正创建了这个对象//int[] s new int[10];也可以…
本文涉及知识点
贪心 回溯 字符串
LeetCode2014. 重复 K 次的最长子序列
给你一个长度为 n 的字符串 s ,和一个整数 k 。请你找出字符串 s 中 重复 k 次的 最长子序列 。 子序列 是由其他字符串删除某些(或不删除)字符派生而来的一个字符串…
1. 头文件
#pragma once
#include <iostream>
using namespace std;class Date
{
public:Date(int year 1, int month 1, int day 1);int GetMonthDay();bool operator>(const Date& d) const;bool operator>(const Date& d)const;bool operator<(c…