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;}};
参考文献为2004年发表的Short Group Signatures
什么群签名? 群签名大致就是由一组用户组成一个群,其中用户对某条消息的签名,改签名不会揭示是哪一个用户签署的,签名只能表明该消息确实是来自该群的签名。对于群还有一个群管理者…