注意问题:

string类问题要注意大小写
注意字符串为空以及长度为1的特殊情况
注意字符串中如果以空格分隔时,出现连续空格的情况

1071. Greatest Common Divisor of Strings

class Solution {
public:string gcdOfStrings(string str1, string str2) {return recursive(str1,str2);}string recursive(string s1,string s2){string ret="";if(s1.length()<s2.length()){string s3=s1;s1=s2;s2=s3;}else if(s1==s2){return s1;}int pos=s1.find(s2);if(pos!=-1){string tmp=s1.substr(s2.length(),s1.length()-s2.length());ret=recursive(tmp,s2);}return ret;}
};

https://www.cnblogs.com/hwd9654/p/10971812.html

1374. Generate a String With Characters That Have Odd Counts

class Solution {
public:string generateTheString(int n) {string ret;if(n%2==1){if(n==1){ret="a";}else{ret="ab";string tmp(n-2,'c');ret+=tmp;}}else{if(n==0){ret="";}else{ret="a";string tmp(n-1,'b');ret+=tmp;}}return ret;}
};

1370. Increasing Decreasing String

class Solution {
public:string sortString(string s) {int a[26];for(int i=0;i<26;i++){a[i]=0;}int len=s.length();for(int i=0;i<len;i++){a[s[i]-'a']++;}string ret="";while(len>0){for(int i=0;i<=25;i++){if(a[i]>0){len--;a[i]--;char tmp='a'+i;ret+=tmp;}}for(int i=25;i>=0;i--){if(a[i]>0){len--;a[i]--;char tmp='a'+i;ret+=tmp;}}}return ret;}
};

1332. Remove Palindromic Subsequences

class Solution {
public:int removePalindromeSub(string s) {int len=s.length();if(len==0){return 0;}else if(len==1){return 1;}string tmp=s;reverse(s.begin(),s.end());if(s==tmp){return 1;}return 2;}
};

1309. Decrypt String from Alphabet to Integer Mapping

class Solution {
public:string freqAlphabets(string s) {int len=s.length();if(len==0){return "";}string ret="";for(int i=len-1;i>=0;i--){if(s[i]=='#'){int tmp=0;tmp+=s[i-2]-'0';tmp*=10;tmp+=s[i-1]-'0';tmp-=1;cout<<tmp<<endl;char x='a'+tmp;ret+=x;i-=2;}else{char x='a'+(s[i]-'0'-1);ret+=x;}}reverse(ret.begin(),ret.end());return ret;}
};

1221. Split a String in Balanced Strings

class Solution {
public:int balancedStringSplit(string s) {int len=s.length();int ret=0;if(len==0){return 0;}else{int l=0;int r=0;for(int i=0;i<len;i++){if(s[i]=='L'){l++;}else if(s[i]=='R'){r++;}if(l==r){ret++;l=0;r=0;}}}return ret;}
};

1189. Maximum Number of Balloons

class Solution {
public:int maxNumberOfBalloons(string text) {int a[5];for(int i=0;i<5;i++){a[i]=0;}int len=text.length();for(int i=0;i<len;i++){if(text[i]-'a'==1){a[0]++;}else if(text[i]-'a'==0){a[1]++;}else if(text[i]-'a'==11){a[2]++;}else if(text[i]-'a'==14){a[3]++;}else if(text[i]-'a'==13){a[4]++;}}a[2]/=2;a[3]/=2;int min=a[0];for(int i=0;i<5;i++){if(a[i]==0){return 0;}else if(a[i]<min){min=a[i];}}return min;}
};

459. Repeated Substring Pattern

class Solution {
public:bool repeatedSubstringPattern(string s) {int len=s.length();if(len==1){return false;}int tmp=sqrt(len);for(int i=len-1;i>0;i--){if(len%i==0){int ti=len/i;string co=s.substr(0,i);string c="";for(int j=0;j<ti;j++){c+=co;}if(c==s){return true;}}}return false;}
};

https://www.cnblogs.com/grandyang/p/6087347.html

28. Implement strStr()

class Solution {
public:int strStr(string haystack, string needle) {int len_h=haystack.length();int len_n=needle.length();if(len_h==0&&len_n==0){return 0;}else if(len_h==0){return -1;}else if(len_n==0){return 0;}else if(len_h==len_n){if(haystack==needle){return 0;}else{return -1;}}int ret=-1;int flag;for(int i=0;i<=len_h-len_n;i++){for(int j=0;j<len_n;j++){if(haystack[i+j]!=needle[j]){flag=-1;break;}}if(flag==-1){flag=1;continue;}else{return i;}}return ret;}
};

345. Reverse Vowels of a String

class Solution {
public:string reverseVowels(string s) {int len=s.length();if(len==0){return "";}int vowel[len];vector<int> vo;int count=0;for(int i=0;i<len;i++){if(s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u'||s[i]=='A'||s[i]=='E'||s[i]=='I'||s[i]=='O'||s[i]=='U'){vowel[i]=1;vo.push_back(s[i]);count++;}else{vowel[i]=0;}}if(count==0){return s;}string ret="";for(int i=0;i<len;i++){if(vowel[i]==0){ret+=s.substr(i,1);}else{ret+=vo[count-1];count--;}}return ret;}
};

520. Detect Capital

class Solution {
public:bool detectCapitalUse(string word) {int len=word.length();int x[len];for(int i=0;i<len;i++){if(word[i]-'a'>=-32&&word[i]-'a'<=-7){x[i]=1;}else{x[i]=0;}}int flag;if(x[0]==1){flag=1;}else{flag=2;}for(int i=1;i<len;i++){if(flag==1){if(i!=len-1&&x[i+1]!=x[i]){return 0;}}else{if(x[i]!=x[0]){return 0;}}}return 1;}
};

383. Ransom Note

class Solution {
public:bool canConstruct(string ransomNote, string magazine) {int a[26]; for(int i=0;i<26;i++){a[i]=0;}int len_r=ransomNote.length();int len_m=magazine.length();for(int i=0;i<len_m;i++){a[magazine[i]-'a']++;}for(int i=0;i<len_r;i++){a[ransomNote[i]-'a']--;if(a[ransomNote[i]-'a']<0){return 0;}}return 1;}
};

434. Number of Segments in a String

class Solution {
public:int countSegments(string s) {int len=s.length();if(len==0){return 0;}int flag=1;for(int i=0;i<len;i++){if(s[i]!=' '){flag=0;}}if(flag==1){return 0;}int count=1;for(int i=0;i<len-1;i++){if(s[i]==' '&&s[i+1]!=' '){count++;}}if(s[0]==' '){count--;}return count;}
};

557. Reverse Words in a String III

class Solution {
public:string reverseWords(string s) {int len=s.length();if(len==1||len==0){return s;}int count=0;int a[len];string ret="";for(int i=0;i<len;i++){a[i]=0;if(s[i]==' '||i==len-1){if(i==len-1){ret+=s.substr(i,1);}for(int j=i-1;j>=i-count;j--){ret+=s.substr(j,1);}if(i!=len-1){ret+=' ';    }count=0;continue;}a[i-count]++;count++;}return ret;}
};

76. Minimum Window Substring

滑动窗口算法:

class Solution {
public:string minWindow(string s, string t) {int count=0,left=0,min_left=-1,min_len=INT_MAX;int len_s=s.length(),len_t=t.length();int sl_wi[96];for(int i=0;i<96;i++){sl_wi[i]=0;}for(int i=0;i<len_t;i++){sl_wi[t[i]-' ']++;}for(int i=0;i<len_s;i++){if(--sl_wi[s[i]-' ']>=0){count++;}while(count==len_t){if(min_len>i-left+1){min_len=i-left+1;min_left=left;}if(++sl_wi[s[left]-' ']>0){count--;}left++;}}if(min_left==-1){return "";}else{return s.substr(min_left,min_len);}}
};

https://www.cnblogs.com/grandyang/p/4340948.html

leetcode string 类相关推荐

  1. C++【STL】【string类的使用】

    目录 string类的常用接口说明 1. string类对象的常见构造 2. string类对象的容量操作 3. string类对象的访问及遍历操作 [LeetCode]反转字符串 string的迭代 ...

  2. C++学习笔记(十)——String类

                                 未来属于那些相信梦想,并愿意为之付诸行动的人.   前言 为什么学习String类? 标准库中的String类 String类(简要了解) s ...

  3. C++ string类(包括深浅拷贝)

    目录 一.字符码表 一.为什么用string类 二.使用标准库中的string类 1.string类 2.string中的常用接口说明 (1)string类对象的常见构造 (2)string类对象访问 ...

  4. C++ string类中的空字符

    在做leetcode时发现一个问题. 题目如下:题目地址 题目不难,很容易做出来. 问题出现在自己写的代码里,代码如下: class Solution { public:vector<vecto ...

  5. C++ _ string类常用函数(字符大小写转换与判断)

    文章目录 1.string类介绍 2.字符大小写转换与判断常用函数 2.1 字符大小写判断 2.1.1 isalpha() 2.1.2 isalnum() 2.1.3 islower() 2.1.4 ...

  6. c++ - 第8节 - string类

    目录 1.为什么学习string类 1.1.C语言中的字符串 1.2.面试题需要 2.标准库中的string类 2.1.string类 2.2.string类的常用接口说明 2.3.string类练习 ...

  7. C++ 笔记(22)— STL string 类(字符串赋值、访问、拼接、查找、翻转、大小写转换)

    1. 实例化和赋值 STL string #include <string> #include <iostream>int main () {using namespace s ...

  8. java string改变的影响_为什么Java的string类要设成immutable(不可变的)

    最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类 ...

  9. C++——String类超详细介绍

    (欢迎及时指正错误!谢谢) STL的含义:标准模板库 STL的内容: 容器:数据的仓库 算法:与数据结构相关的算法.通用的算法(和数据结构无关) 注:熟悉常用的算法 sort  reverse 迭代器 ...

  10. 标准C++中的string类的用法总结

    相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯 ...

最新文章

  1. Step-By-Step在AIX上安装Oracle RAC
  2. MySQL之单表查询、多表查询(一)
  3. 【译文】漫谈ASP.NET中的Session
  4. python读取txt文件_python实现读写txt文件的几种方法
  5. Codeforces632E Thief in a Shop(NTT + 快速幂)
  6. 将dll制作成控件_如何将皮料剪切成想要的大小?制作皮具几种裁剪工具和使用方法...
  7. Java Web学习总结(42)——JavaEE常用的13种核心API与组件
  8. Java中创建子类实例时会创建父类实例?
  9. 金蝶如何修改服务器IP,金蝶服务器ip地址修改
  10. 拿来就能用的前端酷炫登录注册模板
  11. 北大软微计算机专硕分数线,给暑假在复习的考研党谈点经验,一战上岸北大软微总分400+数一148公共课299...
  12. Codeforces 1155F Delivery Oligopoly dp(看题解)
  13. java实现用用户头像代替小程序码的logo(任意图片替换小程序码logo)
  14. “网络吸血鬼” Leech
  15. html画布时钟添加背景图,用HTML5 Canvas 实现的 时钟
  16. 504服务器无响应,什么是504网关超时错误(以及如何解决)? | MOS86
  17. 2、测试面试题总结整理
  18. 抖音3d照片怎么制作html,抖音3D卡通小人是什么app软件 怎么制作方法介绍
  19. 央行再次降息降准,利好股市,估计2800点附近反弹一两天,人民币贬值预期加强
  20. 大小鲨鱼走红 纳米防水技能大有作为

热门文章

  1. linq 连接mysql_如何:使用 LINQ 查询数据库 - Visual Basic | Microsoft Docs
  2. mysql 跳过授权表_跳过授权表登录后使用replace into创建root权限用户
  3. Android 签名问题记录MinSdkVersionException: Failed to determine APK‘s minimum supported platform version
  4. 从Android转大前端半年,我的一些思考
  5. 使用第三方框架解耦的一种思路—简单工厂模式的运用
  6. python基础篇——元组
  7. 计算机c程序题孔融让梨,幼儿园大班语言游戏教案《孔融让梨》含PPT课件
  8. 二维随机变量期望公式_多维随机变量函数的分布
  9. 表单修改php参数,php – 使用参数修改symfony表单的url
  10. 第二周函数-的基本格式: