字符串
lark_ying
清醒时工作,糊涂时读书,独处时思考,烦恼时睡觉~
展开
-
剑指offer 38-字符串的排列 C++
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则按字典序打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。思路:采用递归+set去重(1)将第一个字符与后面所有字符交换;(2)固定第一个字符,求后面所有字符的排列class Solution {public: vector<string> Permutation(st原创 2020-09-13 17:27:08 · 179 阅读 · 0 评论 -
剑指offer 50-第一个只出现一次的字符&字符流中第一个只出现一次的字符 C++
题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)思路1:蛮力法,时间复杂度O(n^2)class Solution {public: int FirstNotRepeatingChar(string str) { if (str.length() == 0) return -1; for (int i = 0; i < str.s原创 2020-05-27 17:09:46 · 125 阅读 · 0 评论 -
剑指offer 58-翻转单词顺序 C++
题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?思路1:借用辅助栈,遇到空格就截取字符串,压入栈中,再依次从栈顶弹栈组成新的字符串。以空间换时间class Solution {pu原创 2020-05-26 16:00:23 · 259 阅读 · 0 评论