输入一行字符串代表chas。
输出一行,代表返回的字符串。
qw**23
**qw23
o*f*f*e*r
****offer
时间复杂度,额外空间复杂度。
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); char[] str = br.readLine().trim().toCharArray(); StringBuilder star = new StringBuilder(); StringBuilder alpha = new StringBuilder(); for(int i = 0; i < str.length; i++){ if(str[i] == '*') star.append(str[i]); else alpha.append(str[i]); } System.out.println(star.toString() + alpha.toString()); } }
#include <iostream> #include <string> void swap(std::string& s , int i, int j) { char temp = s[i]; s[i] = s[j]; s[j] = temp; } int main() { std::string s; std::cin >> s; bool last_char = true; int pos = s.size()-1;; for(int i = s.size()-1; i>= 0; --i) { if(s[i] != '*') { if(last_char) { swap(s, i, pos); last_char = false; } else { if(i != pos-1) { swap(s, i, pos-1); } pos -= 1; } } } std::cout << s << "\n"; return 0; }
import java.io.*; public class Main{ public static void main(String[] args)throws IOException{ BufferedReader bf=new BufferedReader(new InputStreamReader(System.in)); char[] chas=bf.readLine().toCharArray(); int j=chas.length-1; for(int i=chas.length-1;i>-1;i--){ if(chas[i]!='*'){ chas[j--]=chas[i]; } } for(;j>-1;){ chas[j--]='*'; } System.out.println(new String(chas)); } }
#include <stdio.h> #include <string.h> #define MAXLEN 100001 int main(void) { int len, i, j; char str[MAXLEN]; scanf("%s", str); len = strlen(str); for (i = len - 1, j = len - 1; i >= 0; i--) { if (str[i] != '*') { str[j--] = str[i]; } } while (j >= 0) { str[j--] = '*'; } printf("%s\n", str); return 0; }
import java.util.*; public class Main{ public String change(String s) { char[] arr = s.toCharArray(); StringBuilder s1 = new StringBuilder(); StringBuilder s2 = new StringBuilder(); for(char c :arr) { if(c == '*') { s1.append('c'); }else{ s2.append('c'); } } s1.append(s2); return s1.toString(); } }想问这个为什么通过不了,问题在那里
import java.util.Scanner; /** * @author yanglaiyi * @title: 字符串的调整 * @projectName 我自己的算法学习 * @description: TODO * @date 2020/4/1315:03 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); String replace = s.replace("*", ""); String s1 = s.replaceAll("\\d|\\w", ""); System.out.println(s1+replace); } }
#include<stdio.h> (737)#include<string.h> int main() { char a[100000]; char b[100000]; char c[100000]; int l,num,mum; while(scanf("%s",a)!=EOF){ l=strlen(a); num=mum=0; for (int i=0;i<l;i++){ if (a[i]=='*'){ b[num]=a[i]; num++; } if(a[i]!='*'){ c[mum]=a[i]; mum++; } } printf("%s",b); printf("%s",c); } return 0; }