首页 > 试题广场 >

字符串组合

[编程题]字符串组合
  • 热度指数:5553 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入一个字符串,输出该字符串中相邻字符的所有组合。
举个例子,如果输入abc,它的组合有a、b、c、ab、bc、abc。(注意:输出的组合需要去重)(40分)

输入描述:
一个字符串


输出描述:
一行,每个组合以空格分隔,相同长度的组合需要以字典序排序,且去重。
示例1

输入

bac

输出

a b c ac ba bac
头像 小燕子my
发表于 2024-08-28 14:49:55
str1=input() list1=[] # 1.用字符串切片把所有不同长度组合枚举出来。并且不重复的场景添加到list1中 for i in range(len(str1)): for j in range(i+1,len(str1)+1): if str1[i:j] 展开全文
头像 Alan&zhang
发表于 2021-09-11 10:40:20
//思路是按照字串长度1-len,来组合所有的可能。//去重并排序,用的是set#include <iostream>#include <string>#include </string></iostream> using namespace std; 展开全文
头像 绿糖
发表于 2022-03-27 16:47:47
主要思想:从子序列长度1(flag==1,左指针=0,右指针=flag-1)开始遍历寻找相邻子序列,将找到的子序列push进临时数组中,当一轮结束后用sort()将临时数组排序,再将临时数组中的项依次加入set中去重,然后将长度加1(flag++,左指针=0,右指针=flag-1),循环直至(左指针 展开全文
头像 牛客408570776号
发表于 2024-03-20 22:11:08
str = input().strip() a = list(set(str)) a.sort() len_a = len(str) c = [] for j in range(2,len_a): b = set() for i in range(len_a-1): 展开全文
头像 牛客167622957号
发表于 2022-08-14 12:50:59
str = input() arr = set() index = 0 res = [] for i in range(len(str)):      展开全文
头像 morethanthis
发表于 2022-03-24 20:53:20
字符串字典序排列 代码很丑但是能跑 不同于c++,golang没有set进行去重,我的办法是用map记录每个长度下的结果集,然后将其排序最后拼接到最终结果上 package main import ( "bufio" "fmt" "os" "sort" ) func main() { i 展开全文
头像 重生之我要当分子
发表于 2025-01-06 21:19:17
解题思路 这是一个字符串组合问题,需要找出所有相邻字符的组合。关键是要理解"相邻"的含义,并注意去重和排序要求。 关键点: 只能组合相邻的字符 需要按照长度和字典序排序 需要去重 输出时用空格分隔 算法步骤: 获取所有可能长度的子串 对每个长度的子串进行去重和排序 按长度和 展开全文
头像 牛客152482537号
发表于 2023-01-25 22:19:42
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner scanner = 展开全文