Day9| 151.翻转字符串里的单词、卡码网:右旋字符串

 151.翻转字符串里的单词

这题还是有难度的,看了下思路就是分三部分来写:①删除多余空格②翻转字符串③翻转每个单词。但是就这个删除空格的逻辑我自己想就写了半个小时。。。

for (int i = 0; i < s.size();) {
    while (i < s.size() && s[i] != ' ') s[slow++] = s[i++];
    while (i < s.size() && s[i] == ' ') i++;
    if (slow != 0 && i < s.size()) s[slow++] = ' ';
}

后面②和③做翻转这部分代码很简单。

卡码网:右旋字符串

确实没想到这种解法:整体反转+局部反转。代码倒是很容易写。

28.实现 strStr()   459.重复的子字符串

这两题跳过。

<think> 我们有一个字符串:str = "toDay is a Good day" 需要执行的操作: 1. 全大写转换 2. 全小写转换 3. 首字母大写其余小写(即整个字符串的首字母大写,其余小写) 4. 每个单词首字母大写其余小写(即标题化) 5. 居中显示(长度50,填充字符*) 6. 左对齐显示(长度50,填充字符*) 7. 右对齐显示(长度50,填充字符*) 8. 删除空格(删除所有空格) 根据引用,我们可以使用以下方法: - 全大写:str.upper() - 全小写:str.lower() - 首字母大写其余小写:str.capitalize() (引用[4]) - 每个单词首字母大写其余小写:str.title() - 居中:str.center(50, &#39;*&#39;) (引用[3]) - 左对齐:str.ljust(50, &#39;*&#39;) (引用[1]和[3]) - 右对齐:str.rjust(50, &#39;*&#39;) (引用[3]) - 删除空格:str.replace(" ", "") (注意:删除所有空格,包括中间空格) 注意:原字符串中有空格,所以删除空格就是去掉所有空格。 但是,注意:原字符串是 "toDay is a Good day",在操作前我们都需要基于这个原始字符串。 另外,对于每个操作,我们都需要用原始字符串进行操作,而不是连续操作(除非特别要求)。 因此,我们将分别对原始字符串应用这些操作。 注意:在居中、左对齐、右对齐操作中,我们要求长度为50,填充字符为&#39;*&#39;。这些操作会在字符串两边(居中)、右侧(左对齐)、左侧(右对齐)填充指定字符,直到字符串总长度达到50。 另外,删除空格操作,我们使用替换空格为空字符串。 我们开始逐步实现: </think> 针对字符串 `str = "toDay is a Good day"` 的操作实现如下: 1. **全大写转换** `str.upper()` → `"TODAY IS A GOOD DAY"` ```python "toDay is a Good day".upper() ``` 2. **全小写转换** `str.lower()` → `"today is a good day"` ```python "toDay is a Good day".lower() ``` 3. **首字母大写其余小写** `str.capitalize()` → `"Today is a good day"` ```python "toDay is a Good day".capitalize() # 引用[4] ``` 4. **每个单词首字母大写** `str.title()` → `"Today Is A Good Day"` ```python "toDay is a Good day".title() ``` 5. **居中显示(长度50,填充*)** `str.center(50, &#39;*&#39;)` → `&#39;****************toDay is a Good day****************&#39;` ```python "toDay is a Good day".center(50, &#39;*&#39;) # 引用[3] ``` 6. **左对齐显示(长度50,填充*)** `str.ljust(50, &#39;*&#39;)` → `&#39;toDay is a Good day********************************&#39;` ```python "toDay is a Good day".ljust(50, &#39;*&#39;) # 引用[1][3] ``` 7. **右对齐显示(长度50,填充*)** `str.rjust(50, &#39;*&#39;)` → `&#39;********************************toDay is a Good day&#39;` ```python "toDay is a Good day".rjust(50, &#39;*&#39;) # 引用[3] ``` 8. **删除所有空格** `str.replace(" ", "")` → `"toDayisaGoodday"` ```python "toDay is a Good day".replace(" ", "") ``` ### 完整代示例 ```python s = "toDay is a Good day" # 1. 全大写 print(s.upper()) # "TODAY IS A GOOD DAY" # 2. 全小写 print(s.lower()) # "today is a good day" # 3. 首字母大写 print(s.capitalize()) # "Today is a good day" # 4. 单词首字母大写 print(s.title()) # "Today Is A Good Day" # 5. 居中填充* print(s.center(50, &#39;*&#39;)) # 两侧各填充16个* # 6. 左对齐填充* print(s.ljust(50, &#39;*&#39;)) # 右侧填充32个* # 7. 右对齐填充* print(s.rjust(50, &#39;*&#39;)) # 左侧填充32个* # 8. 删除空格 print(s.replace(" ", "")) # "toDayisaGoodday" ``` ### 关键说明 - 对齐操作中,当字符串长度小于目标长度时才会填充(本例原始长度19<50)[^5] - `ljust()`/`rjust()`/`center()` 的第二个参数指定单字符填充物(默认空格)[^3] - 删除空格使用 `replace()` 替换空格为空字符,会移除所有空格(包括单词间)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值