1. 程式人生 > >【Java筆試題】輸出字串的所有組合

【Java筆試題】輸出字串的所有組合

1、題目

輸入一個字串,輸出該字串中字元的所有組合。舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。

2、解題思想

首先建立combine函式,對於字串進行處理,如果字串為空,則直接輸出;如果字串不為空,則建立StingBuilder物件,對字串內的每個元素進行迴圈處理,呼叫combination函式。對於combination函式,其功能就是將字串中字元的所有組合輸出。

3、Java程式碼

public class CombinationAll {
    public static void main(String[] args) {
        combine("abc"
); } public static void combine(String str) { if (str == null) //如果字串為空,則直接返回 return; int length = str.length(); StringBuilder sb = new StringBuilder(); //建立字串容器 for (int i = 0; i < length; i++) { combination(str, 0, i, sb); } } public
static void combination(String str, int index, int number, StringBuilder sb) { if (number == -1) { System.out.println(sb.toString()); return; } if (index == str.length()) return; sb.append(str.charAt(index)); //向StringBuilder中新增元素 combination(str
, index + 1, number - 1, sb); sb.deleteCharAt(sb.length() - 1); //在StringBuilder中刪除元素 combination(str, index + 1, number, sb); } }

相關推薦

Java試題輸出字串所有組合

1、題目 輸入一個字串,輸出該字串中字元的所有組合。舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。 2、解題思想 首先建立combine函式,對於字串進行處理,如果字串為空,則直接輸出;如果字串不為空,則建立StingBuild

Java試題輸出字串中第一個不重複的字元

1、題目 在一個字串中找到第一個只出現一次的字元。例如,輸入“abaccdeff”,則輸出b。 2、Java程式碼 public class RetStr { public static

試題列印字串所有子集

7、有一個集合由A-Z這26個字母組成,列印這個集合的所有子集,每個子集一行,寫C程式碼實現,不能使用遞迴(騰訊面試題) 思路:J作為一個可以移動的指標,i代表資料的範圍(所有可能性),J每迴圈結束,從緩衝區刷到終端 void SubSet(int n) { const

Java試題定義棧的資料結構

1、題目 定義棧的資料結構,請在該型別中實現一個能夠得到棧最小元素的min函式,在該棧中,呼叫min、push和pop的時間複雜度都是O(1)。 2、Java程式碼 public class

Java試題判斷迴文數字

1、題目 有這樣一類數字,它們順著看和倒著看是相同的數,例如:121、656、2332等,這樣的數字就稱為迴文數字。編寫一個Java程式,判斷從鍵盤接收的數字是否為迴文數字。 2、解題思想 從迴文數字的特點出發,弄清楚其特點是解決本問題的關鍵。解決方案可以

Java試題愛因斯坦的階梯問題

1、題目 愛因斯坦曾出過這樣一道有趣的數學題:有一個長階梯,每步上 2 階,最後剩 1 階;若每步上 3 階,最後剩 2 階;若每步上 5 階,最後剩 4 階;若每步上 6 階,最後剩 5 階;只有每步上 7 階,最後一階也不剩。請問該階梯至少有多少階。編寫一個

Java程式設計思想13.字串

字串操作是計算機程式設計中最常見的行為。 13.1 不可變 String String 物件是不可變的。String 類中每一個看起來會修改 String 值的方法,實際上都是建立了一個全新的 String 物件去包含修改後的字串內容;而最初的 String 物件則沒有改變。 每當吧 Stirng 物

Java試題之類載入:從面試題分析Java類載入機制

 “載入”(Loading)階段是“類載入”(Class Loading)過程的第一個階段,在此階段,虛擬機器需要完成以下三件事情:        1、 通過一個類的全限定名來獲取定義此類的二進位制位元組流。        2、 將這個位元組流所代表的靜態儲存結構轉化為方法區的執行時資料結

Java試題spring+springMVC+mybatis原理及實現機制(持續更新)

本文將持續更新,主要講解SSM框架的底層原理和實現機制等 1.什麼是IOC? IOC即Inverse of Control,它包括兩個內容:控制與反轉 那到底什麼東西的“控制”被“反轉”了呢?對於軟體而言,即是某一個介面具體實現類的選擇控制權從呼叫類中移除,轉交給第三

java試題Static Nested Class(巢狀類) 和 Inner Class(內部類)的不同 、final、static

前言: 本來是想總結一下inner class 的用法,但是卻發現這幾位頗為親近。索性一起拉出來溜溜。 寫作目的: 跟 static , final, inner class 搞好關係,以便將來遇見了,就像用if ,else一樣,一清二楚。 文中的術語定義以java language spec為準。 先想想

Java試題11 什麼是內部類?Static Nested Class 和 Inner Class的不同。

Inner Class(內部類)定義在類中的類。 (一般是JAVA的說法) Nested Class(巢狀類)是靜態(static)內部類。(一般是C++的說法) 靜態內部類:1 建立一個static內部類的物件,不需要一個外部類物件2 不能從一個static內部類的一

Anonymous Inner Class(匿名內部類)是否可以繼承其它類?是否可以實現介面?Java試題

回答:匿名內部類在實現時必須藉助一個藉口或者一個抽象類或者一個普通類來構造,從這過層次上講匿名內部類是實現了介面或者繼承了類,但是不能通過extends或implement關鍵詞來繼承類或實現介面。

Java試題之分頁功能的實現

以下內容是根據網上內容以及傳智播客教學整理而來,侵刪。 分頁的實現可分為兩大類:一、資料在Java程式碼中進行分頁,然後取得當前頁資料;二、在資料庫中直接取得當前頁資料。通常面試官都希望聽到後者,因為那才是高效的方法。你如果想讓面試官覺得你的能力高的話你就先否定他的問

抽象類(abstract class)和介面(interface)有什麼異同?Java試題

1、抽象類可以包含非抽象的方法,而介面中的方法必須是抽象的。 2、繼承抽象類在Java語言體系中體現一種繼承關係,在合理的繼承關係中,父類和派生類比如按存在is-a關係。而實現介面則體現一種has-a

Java試題如何回答GC相關問題

一個面試官對面試問題的分析 這個帖子的背景是今晚看到je上這張貼:大家都來說說自己最討厭的面試題目吧。,心血來潮寫下的文字,如果能拋磚引玉,能有其他面試官分析一下自己面試時問的問題,那或許是件很有意義的事情。 在公司當技術面試官幾年間,從應屆生到工作十幾年的應聘者都遇到過。先表達一下我自己對面試的觀點:

生成指定個數的隨機碼,同時包含大小寫字母和數字H3C試題

【華三通訊2011年校招程式設計題】題目:編寫一個函式,用於生成隨機密碼,引數為隨機密碼長度,密碼必須同時包含大小寫字母和數字。 【思路】先隨機生成大寫字母、小寫字母和數字的個數,然後密碼的每一位都

前端試題陣列去重

陣列去重 題目來自於自己真實筆試,現在總結到博文,算是給自己的再一次複習吧,另外也可以與大家分享。 最初的實現 我記得我第一次的答案是這樣寫的: for (var i = 0; i < arr1.length; i++) { f

Java試題一次完整的Http請求過程(非常詳細)

④ 如果在hosts檔案中也沒有找到對應的條目,瀏覽器就會發起一個DNS的系統呼叫,就會向本地配置的首選DNS伺服器(本地DNS伺服器,一般是電信運營商提供的,也可以使用像Google提供的DNS伺服器)發起域名解析請求(遞迴,通過的是UDP協議向DNS的53埠發起請求,這個請求是遞迴的請求,也就是運營商的D

Java試題--比較兩字串

1、題目 給定兩個分別由字母組成的字串str1和字串str2,字串str2的長度比字串str1短,請問,如何最快地判斷字串str2中所有字母是否都在字串str1裡?例如,字串str1為“ABCD”,str2為“AC”,則返回true,因為字串str2中的字母A和B都在字串s

Java試題對於構造方法的疑問?——與類的初始化

一,疑問從學習java至今,我一直對構造方法存在很多疑問,在此將我的疑問throw,你們可以catch到嗎?面試官 :你說下構造方法吧!我 :((⊙o⊙)… ,構造方法有什麼聊的,物件的new不是一直在用嗎?) 構造方法是一種特殊的方法,它是一個與類同名且沒有