4.将给定字符串”IUsedPython”,切割成“T”“Used”"Python”三个字符串,要求:在不使用Python 自带的字符串切片方法的前提下,使用代码进行字符串切片,输出结果;再用Python 自带的字符串切片方法对该字符串切片,也输出结果。
时间: 2024-12-16 08:15:09 浏览: 19
不使用Python自带的字符串切片方法,可以手动遍历并分割字符串,例如使用`for`循环和`index()`函数:
```python
input_str = "IUsedPython"
output_list = []
start_index = 0
for i in range(1, len(input_str)):
if input_str[i] == ' ':
output_list.append(input_str[start_index:i])
start_index = i + 1
# 将最后一个单词添加到列表中
output_list.append(input_str[start_index:])
print("不使用切片方法的结果:", output_list) # 输出:["T", "Used", "Python"]
# 使用Python自带的字符串切片方法
output_slices = input_str.split(' ')
print("使用切片方法的结果:", output_slices) # 输出:["T", "Used", "Python"]
```
这里我们通过查找空格位置,找到每个单词的开始和结束索引,然后拼接成新的字符串。
相关问题
给定一个字符串,请计算出其中不含有重复字符的最长子串的长度,Python实现
在Python中,可以使用滑动窗口(Sliding Window)算法来解决这个问题。滑动窗口是一种常用的动态规划技术,它通过维护一个大小为k的窗口来遍历字符串,每次向右移动一位,并记录窗口内唯一字符的集合,如果新加入的字符不在集合中,则继续添加;若在,则更新窗口左边界直到该字符不再集合中。
以下是Python代码实现:
```python
def length_of_longest_substring(s):
if not s:
return 0
n = len(s)
left = right = 0
used_char = set()
max_len = 0
while right < n:
# 如果当前字符没出现过,加入窗口并右移
if s[right] not in used_char:
used_char.add(s[right])
right += 1
max_len = max(max_len, right - left)
else:
# 如果当前字符出现过,移除窗口左侧第一个已出现的字符
used_char.remove(s[left])
left += 1
return max_len
```
这个函数会返回输入字符串`S`中最长无重复字符的子串的长度。例如,对于字符串"pwwkew",最长无重复字符子串为"wke",其长度为3。
用python打出下列条件的程序,给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
可以使用滑动窗口的方法来解决这个问题。具体步骤如下:
1. 定义一个双指针 left 和 right,表示当前子串的左右边界;
2. 定义一个字典 used_chars,用来记录已经出现过的字符及其在子串中的位置;
3. 初始化 left = 0,right = 0,max_len = 0;
4. 从左到右遍历字符串 s,每次将 right 向右移动一位,并将当前字符 s[right] 添加到 used_chars 中;
5. 如果当前字符 s[right] 已经在 used_chars 中出现过,并且它的位置在 left 和 right 之间(即在当前子串中),则更新 left 的值为 used_chars[s[right]] + 1,表示将左边界移动到重复字符的下一个位置;
6. 计算当前子串的长度 max_len,并更新最大长度 max_len;
7. 重复步骤 4-6,直到 right 到达字符串 s 的末尾。
下面是具体的 Python 代码实现:
```python
def lengthOfLongestSubstring(s: str) -> int:
used_chars = {}
left = 0
right = 0
max_len = 0
while right < len(s):
if s[right] in used_chars and used_chars[s[right]] >= left:
left = used_chars[s[right]] + 1
used_chars[s[right]] = right
max_len = max(max_len, right - left + 1)
right += 1
return max_len
```
这个函数接受一个字符串 s 作为参数,并返回最长不含重复字符的子串的长度。例如:
```python
print(lengthOfLongestSubstring("abcabcbb")) # 3
print(lengthOfLongestSubstring("bbbbb")) # 1
print(lengthOfLongestSubstring("pwwkew")) # 3
print(lengthOfLongestSubstring("")) # 0
```
阅读全文
相关推荐














