題目描述:給定一個字串,求出其所有可能的字元組合. 比如:abc 其所有組合是:a,b,c,ab,ac,bc,abc
/* 題目描述:給定一個字串,求出其所有可能的字元組合. 比如:abc 其所有組合是:a,b,c,ab,ac,bc,abc 是遞迴的思想:首先你拿到的是abc,你可以依次打印出去掉c,b,a的組合:ab,ac,bc 然後遞迴用這些子串去調動這個函式,比如ab:依次去掉b,a打印出a,b; ac依次打印出a,c;bc依次打印出b,c;但是存在一個問題列印重複了,這個 可以傳進去一個引數pos來解決 */ #include<iostream> using namespace std; void fun(string str,int pos) { if(str.length() == 0) return; for(int i = pos - 1; i >=0; --i) { string tmp; for(int j = 0;j<str.length();++j) { if(j != i) { tmp += str[j]; } } fun(tmp,i); } cout<<str<<" "; } int main() { string str("abcd"); fun(str,4); cout<<endl; return 0; }
執行結果:
g++ 2.cpp
t$ ./a.outa b ab c ac bc abc d ad bd abd cd acd bcd abcd
相關推薦
題目描述:給定一個字串,求出其所有可能的字元組合. 比如:abc 其所有組合是:a,b,c,ab,ac,bc,abc
/* 題目描述:給定一個字串,求出其所有可能的字元組合. 比如:abc 其所有組合是:a,b,c,ab,ac,bc,abc 是遞迴的思想:首先你拿到的是abc,你可以依次打印出去掉c,b,a的組合:ab,ac,bc 然後遞迴用這些子串去調動這個函式,比如ab:依次去掉b,
LeetCode 第3題:給定一個字串,找出不含有重複字元的最長子串的長度。
public class LeetCode3 { public static void main(String[] args) { /** * LeetCode第3題: * 給定一個字串,找出不含有重複字元的最
給定一個字串,找出不含有重複字元的最長子串的長度。 示例: 給定 "abcabcbb" ,沒有重複字元的最長子串是 "abc" ,那麼長度就是3。 給定 "bbbbb" ,最長的子串就是 "b
Str = raw_input('plese input Str:') def qiu_chongfu(Str2):#定義判斷字串是否含有重複字元,如有返回0,沒有返回1 biao = 0 for i in range(0,len(Str2)): for j in
給定一個字串,求出其最長的重複子串的長度
題目來源:這是程式設計珠璣上的一道題目 概念 字串的字首和字尾 例如字串 s =“abcdeabc” 則s的字首: “a”,“ab”,“abc”,“abcd”,“abcde”,“abcdea”,“abcdeab”,“abcdeabc”其中除了s
給定一個字串,求出其最長的重複子串
題目:給定一個字串,求出其最長的重複子串 如字串abcdabcabcd,求的最長重複子串為abcd 程式碼: void LongChar(char* str) { if(str==NULL) return; int max=0; &
【每日面試題】給定一個字串,求出其最長的重複子串
題目:給定一個字串,求出其最長的重複子串 如字串abcdabcabcd,求的最長重複子串為abcd 程式碼: void LongChar(char* str) { if(str==NULL) return; int max=0; int first=0; int
給定一個字串,找出不含有重複字元的最長子串的長度。
題目描述: 給定一個字串,找出不含有重複字元的最長子串的長度。 思路1: 依排列組合的所有可能拿到所有子串,依次傳入重複子穿的判斷方法中進行判斷,每次更新出不重複子串的最大長度! 具體程式碼: 1 import java.util.Scanner; 2 3 pu
給定一個字串,找出不含有重複字元的最長子串的長度(javascript)
var lengthOfLongestSubstring = function(s){ var str = '';//存放當前最大無重複項字串 var len = 0;//存放當前當前最大無重複項字串長度 for(var i=0;i<s.length;
前端演算法:給定一個字串,找到它中的第一個非重複字元並返回它的索引
給定一個字串,找到它中的第一個非重複字元並返回它的索引。如果它不存在,則返回-1。 例子: s =‘leetcode’ 返回0。 s =‘loveleetcode’ 返回2。 注意:您可以假設該字串僅包含小寫字母。 <script> var
LeetCode 3. Longest Substring Without Repeating Characters 給定一個字串,找到它的沒有重複字元的最大子串
Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb", the answer is "abc",
給定一個字串,找到最先出現的相同字元
連結:https://www.nowcoder.com/questionTerminal/2a38887ce9ec4262856b40e5ae87e557 來源:牛客網 char first_double_char(const char *str) { int le
給定一個字串,找出其所有不重複的排列組合
給一個字串,比如ABC, 把所有的排列,即:ABC, ACB, BAC, BCA, CAB, CBC 都找出來。 解題思路: 對於一個n 位的字串來講,它是n-1位字串的排列 加上 沒有在 n -1 位字串裡 那個字元 的排列。 比如: 對於字串ABC來講,它所有
面試程式設計題1:給定一個字串,統計出每個字母出現次數
不管是自動化測試,還是測試開發,或者高階測試工程師,國內很多公司都開始要求編碼能力。在各種面試中,經常會問到一些程式設計如何實現的問題。本系列,專門記錄一些面試中遇到的問題,主要是用Ja
給定一個字串,去重(重複的字元只保留第一次出現的)
原始碼(c++): #include <iostream> #include <string> using namespace std; int main(){ string str; cin>>str; int
c#程式設計:給定一個正整數求出是幾位數並逆序輸出
<span style="color:#FF0000;">第一步:把輸入的數字轉為字串n.ToString() 第二步:求出字串的長度即為正整數的位數 第三步:從後向前逆序輸出</span> 附程式碼: using System; using Sys
給定一個字串,刪除字串中所有的b和ac組合, 要求:字串只遍歷一次,且不能使用額外的空間
string = 'aaascsscc' ls = list(string) def isA(ls): i = 0 while i < len(ls): if ls[i] == 'b': ls.pop(i) if i &g
變換:給定一個字串作為輸入,將其中的數字用數字前近鄰的字母序列進行替換,字母序列重複的次數等於該數字。最後將字串輸出。 例如: 輸入:’a2bc3d1’ 輸出:’aabcbcbcd’
JS中,字串的基本操作有: 1.search 查詢 2.substring 獲取子字串 3.charAt 獲取某個字元 4.split分割字串,獲得陣列 JS中,陣列的基礎操作有: 1.push()方法可以在陣列的末屬新增一個或多個元素 2.pop()方法把陣
題目:輸入一個字串,打印出該字串中字元的所有排列。例如輸入字串abc,則輸出由字元a、b、c所能排列出來的所有字串abc、acb、bac、bca、cab和cba。
題目:輸入一個字串,打印出該字串中字元的所有排列。例如輸入字串abc,則輸出由字元a、b、c所能排列出來的所有字串abc、acb、bac、bca、cab和cba。 /** * */ pack
題目:寫一個函式,求兩個整數之和,要求在函式體內不得適用+,-,* ,./ 四則運算子號
題目:寫一個函式,求兩個整數之和,要求在函式體內不得適用+,-,* ,./ 四則運算子號 面試的時候被問道這個問題,首先我們分析人們是如何進行十進位制的加法的,比如如何得出5+17=22這個結果的,實際上,我們可以分三步進行:第一步只做各位相加不進
題目:輸入一個字串,輸出該字串中字元的所有組合。舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。
題目:輸入一個字串,輸出該字串中字元的所有組合。舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。 /* * AllQ.java 2011-10-23 * Copyri