You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按奇偶单词数反转对应位置单词的字符串处理实现咨询

实现建议与代码示例

不用纠结中部拆分的问题,直接按以下步骤处理就搞定:

核心处理步骤

  1. 拆分成单词数组:把输入字符串按空格拆成单个单词的列表,这是处理每个单词的基础。
  2. 确定要反转的单词位置:
    • 如果单词总数是偶数:挑所有第2、4、6...位的单词(从1开始数,对应示例里的Yadav、Rajput、Pundir)
    • 如果单词总数是奇数:挑所有第1、3、5...位的单词
  3. 反转目标单词:把选中的每个单词单独反转。
  4. 拼接结果:先把反转后的单词按原位置顺序放在前面,再把剩下没反转的单词按原来的顺序接在后面,拼成最终字符串。

Python代码示例

def process_input_string(s):
    # 拆分字符串为单词列表
    word_list = s.split()
    total_words = len(word_list)
    
    # 筛选需要反转的单词的索引(转成0索引对应题目要求的1开始计数)
    if total_words % 2 == 0:
        # 偶数总数:选原2、4、6位 → 对应0索引的1、3、5
        target_indexes = [i for i in range(total_words) if (i + 1) % 2 == 0]
    else:
        # 奇数总数:选原1、3、5位 → 对应0索引的0、2、4
        target_indexes = [i for i in range(total_words) if (i + 1) % 2 == 1]
    
    # 生成反转后的单词列表和剩余单词列表
    reversed_part = [word_list[i][::-1] for i in target_indexes]
    remaining_part = [word_list[i] for i in range(total_words) if i not in target_indexes]
    
    # 拼接成最终字符串
    return ' '.join(reversed_part + remaining_part)

# 测试示例输入
test_input = "Ashish Yadav Abhishek Rajput Sunil Pundir"
print(process_input_string(test_input))
# 输出结果:ridnuP tupjaR vadaY Ashish Abhishek Sunil

关键细节说明

  • 位置计数:题目里的“偶数位置”“奇数位置”是从1开始数的,所以代码里用(i+1) % 2来转换Python的0索引体系,别搞混了。
  • 为啥不用中部拆分:你的困惑点完全没必要,根本不需要拆分数组中间,只要精准筛选对应位置的单词就行,逻辑更清晰。
  • 反转单词的方法:不同语言有不同实现,比如Java可以用new StringBuilder(word).reverse().toString(),JavaScript用word.split('').reverse().join(''),核心都是把单词的字符顺序倒转。

内容的提问来源于stack exchange,提问作者Ílaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:35:15