- 设计思想:
-视频讲解链接B站视频讲解
- 复杂度分析:
- 代码:
c++版本:
class Solution { public: /** * * @param s string字符串 * @return string字符串 */ string change(string s) { // write code here int n = s.size();//整个字符串长度 int index = 0; int k = 0;//用来统计有多少个a for(int i = 0;i < n;i ++){ if(s[i] != 'a'){ s[index ++] = s[i];//进行覆盖,保证其他字符的相对顺序不变 }else{ k ++; } } //将a插入进来 for(int i = 0;i < k;i ++){ s[index ++] = 'a'; } return s; } };
Java版本:
import java.util.*; public class Solution { /** * * @param s string字符串 * @return string字符串 */ public String change (String s) { // write code here int n = s.length();//整个字符串长度 int index = 0; int k = 0;//用来统计有多少个a char[] str = s.toCharArray(); for(int i = 0;i < n;i ++){ if(str[i] != 'a'){ str[index ++] = str[i];//进行覆盖,保证其他字符的相对顺序不变 }else{ k ++; } } //将a插入进来 for(int i = 0;i < k;i ++){ str[index ++] = 'a'; } return new String(str); } }
Python版本:
# # # @param s string字符串 # @return string字符串 # class Solution: def change(self , s ): # write code here a = [] b = [] for i in s: if i == 'a': a.append(i) else: b.append(i) b.extend(a) return ''.join(b)
JavaScript版本:
/** * * @param s string字符串 * @return string字符串 */ function change( s ) { // write code here let n = s.length;//整个字符串长度 let index = 0; let k = 0;//用来统计有多少个a let str = s.split(''); for(let i = 0;i < n;i ++){ if(str[i] != 'a'){ str[index ++] = str[i];//进行覆盖,保证其他字符的相对顺序不变 }else{ k ++; } } //将a插入进来 for(let i = 0;i < k;i ++){ str[index ++] = 'a'; } return str.join('') } module.exports = { change : change };