Day8 字符串
基础知识
java 相关
- 输入:
Scanner sc = new Scanner(System.in); //输入
- 输出 :
System.out.println();//输出
String相关
- string在Java中是不可以改变的
- string的长度: s.length()
题目
本题用Java实现非常简单,不多赘述;
核心是找好end的指针位置,要和最后一位进行比较。
本题主要是锻炼acm模式,对于Java的输入和输出还不是很熟悉
梳理
代码
344
class Solution {
public void reverseString(char[] s) {
int left = 0;
int right = s.length - 1;
while(left<right){
char c = s[left];
s[left] = s[right];
s[right] = c;
left++;right--;
}
}
}
541
class Solution {
public String reverseStr(String s, int k) {
char[] sc = s.toCharArray();
for (int start = 0; start < sc.length; start += 2 * k) {
int left = start;
// 确保反转的长度不超过 k
int right = Math.min(start + k - 1, sc.length - 1);
while (left < right) {
char temp = sc[left];
sc[left] = sc[right];
sc[right] = temp;
left++;
right--;
}
}
return new String(sc);
}
}
卡码网54
import java.util.*;
public class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
char [] sin = s.toCharArray();
int count = 0;
int size1 = sin.length;
for (int i = 0; i < size1; i++){
if (sin[i] >= '0' && sin[i] <= '9'){
count++;
}
}
int size2 = size1 + count * 5;
char[] res = new char[size2];
for(int i = size2 - 1, j = size1 - 1; i >= 0; i--, j--){
if (sin[j] > '9' || sin[j] < '0'){
res[i] = sin[j];
}
else{
res[i] = 'r';
res[i-1] = 'e';
res[i-2] = 'b';
res[i-3] = 'm';
res[i-4] = 'u';
res[i-5] = 'n';
i -= 5;
}
}
String ans = new String(res);
System.out.println(ans);
}
}