桥东区住房和建设局网站,做爰全过程免费网站可以看,crm管理系统在线演示,做暧免费观看网站1. 题目
给你一个混合了数字和字母的字符串 s#xff0c;其中的字母均为小写英文字母。
请你将该字符串重新格式化#xff0c;使得任意两个相邻字符的类型都不同。 也就是说#xff0c;字母后面应该跟着数字#xff0c;而数字后面应该跟着字母。
请你返回 重新格式化后 …1. 题目
给你一个混合了数字和字母的字符串 s其中的字母均为小写英文字母。
请你将该字符串重新格式化使得任意两个相邻字符的类型都不同。 也就是说字母后面应该跟着数字而数字后面应该跟着字母。
请你返回 重新格式化后 的字符串如果无法按要求重新格式化则返回一个 空字符串 。
示例 1
输入s a0b1c2
输出0a1b2c
解释0a1b2c 中任意两个相邻字符的类型都不同。
a0b1c2, 0a1b2c, 0c2a1b 也是满足题目要求的答案。示例 2
输入s leetcode
输出
解释leetcode 中只有字母所以无法满足重新格式化的条件。示例 3
输入s 1229857369
输出
解释1229857369 中只有数字所以无法满足重新格式化的条件。示例 4
输入s covid2019
输出c2o0v1i9d示例 5
输入s ab123
输出1a2b3提示
1 s.length 500
s 仅由小写英文字母和/或数字组成。来源力扣LeetCode 链接https://leetcode-cn.com/problems/reformat-the-string 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
class Solution {
public:string reformat(string s) {int count[36] {0}, i, j, k, a0, n0;for(i 0; i s.size(); i){if(isdigit(s[i]))count[s[i]-026], n;elsecount[s[i]-a], a;}if(abs(a-n) 1)//相差不能超过1return ;if(a n)//字母多{k 0;for(i 0; i 26; i)//先字母{while(count[i]--){s[k] ia;k 2;}}k 1;for(i 26; i 36; i){while(count[i]--){s[k] i0-26;k 2;}}}else//数字多{k 0;for(i 26; i 36; i)//先数字{while(count[i]--){s[k] i0-26;k 2;}}k 1;for(i 0; i 26; i){while(count[i]--){s[k] ia;k 2;}}}return s;}
};