当前位置:网站首页>牛客 BM83 字符串變形(大小寫轉換,字符串反轉,字符串替換)
牛客 BM83 字符串變形(大小寫轉換,字符串反轉,字符串替換)
2022-07-03 14:38:00 【嘻嘻作者哈哈】
- 題目:BM83 字符串變形
思路
- 轉換大小寫。遍曆字符串,遇到小寫字母,轉換成大寫,遇到大寫字母,轉換成小寫,遇到空格正常不變。
- 反轉整個字符串。
- 以空格為界限,對每一個單詞單獨進行反轉。
import java.util.*;
public class Solution {
public String trans(String s, int n) {
// write code here
int len = s.length();
StringBuilder res = new StringBuilder(len);
// 第一步:轉換大小寫
for(int i = 0; i < len; ++i){
char cur = s.charAt(i);
if(cur >= 'a' && cur <= 'z'){
res.append((char)(cur - 'a' + 'A')); // 小寫變大寫
} else if(cur >= 'A' && cur <= 'Z'){
res.append((char)(cur - 'A' + 'a')); // 大寫變小寫
} else{
res.append(cur); // 空格
}
}
// 第二步:翻轉整個字符串
res = res.reverse();
// 第三步:單個單詞進行翻轉
int i = 0;
int j = 0;
while(i < len){
j = i; // 指向空格
// 以空格為邊界,翻轉一個單詞
while(j < len && res.charAt(j) != ' '){
++j;
}
// 截取[i, j)區間的子串
StringBuilder word = new StringBuilder(res.substring(i, j));
word = word.reverse(); // 翻轉單詞
res.replace(i, j, word.toString()); // 替換原單詞
i = j + 1; // 從下一個單詞開始
}
return res.toString();
}
}
總結
- 小寫變大寫:
ch = ch - 'a' + 'A' - 大寫變小寫:
ch = ch - 'A' + 'a' - 字符串反轉:
str = str.reverse() - 截取子串:
sub = str.substring(start, end) - 子串替換:
str.replace(start, end, str1)
边栏推荐
- 【7.3】146. LRU caching mechanism
- Bucket sorting in C language
- 7-23 currency conversion (using array conversion)
- 添加Zabbix计算类型项目Calculated items
- How Facebook moves instagram from AWS to its own server
- Zzuli:1045 numerical statistics
- Timecho of Tianmou technology completed an angel round financing of nearly 100 million yuan to create a native timing database of the industrial Internet of things
- Address book sorting
- Zzuli: sum of 1051 square roots
- Find specified characters
猜你喜欢

一文了解微分段应用场景与实现机制

tonybot 人形机器人 定距移动 代码编写玩法

How to query the baby category of tmall on Taobao

Tonybot humanoid robot starts for the first time 0630

puzzle(016.4)多米诺效应

retrofit

Talking about part of data storage in C language

C language to realize mine sweeping

Accelerating strategy learning using parallel differentiable simulation

NFT new opportunity, multimedia NFT aggregation platform okaleido will be launched soon
随机推荐
NPM install is stuck with various strange errors of node NPY
Get permissions dynamically
How to query the baby category of tmall on Taobao
7-28 monkeys choose King (Joseph problem)
如何查询淘宝天猫的宝贝类目
Sendmail can't send mail and it's too slow to send. Solve it
[combinatorics] permutation and combination (set combination, one-to-one correspondence model analysis example)
Puzzle (016.3) is inextricably linked
7-20 print 99 formula table (format output)
SSH access control, blocking the IP when logging in repeatedly to prevent brute force cracking
Zzuli:1040 sum of sequence 1
7-10 stack of hats (25 points) (C language solution)
Niuke: crossing the river
2021-10-16 initial programming
表单文本框的使用(一) 选择文本
Zzuli:1058 solving inequalities
Tonybot humanoid robot starts for the first time 0630
Doris学习笔记之数据表的创建
Tonybot humanoid robot checks the port and corresponds to port 0701
7-18 finding the single root of polynomial by dichotomy