java筆試題:用java實現字串壓縮演算法
題目:將字串 aaabcdda (可以從控制檯接收)程式設計實現將其轉換為 3a1b1c2d1a。
我的大致就這樣:
System.out.print("請輸入一串字串:");
Scanner s = new Scanner(System.in);
String str = s.nextLine();
StringBuffer result = new StringBuffer();
// 字串長度
int count = str.length();
// 取第一個字元
char word1 = str.charAt(0);
// 連續字元的個數
int sum = 1;
for (int i = 1; i < count; i++) {
// 迴圈取字元
char word2 = str.charAt(i);
// 把前一個字元和當前字元比較
if (word1 == word2) {
// 相同的字元 個數加1
sum++;
continue;
}
// 拼接字元
result.append(sum).append(word1);
// 當前字元變為前一個字元
word1 = word2;
// 個數清零
sum = 1;
}
// 加上最後一個字元及個數,並列印輸出
System.out.println("字串壓縮後:" + result.append(sum).append(word1));
效果如下:
再輸入帶空格的字串:
假如從控制檯接收輸入的字串時,我們呼叫的是next方法,
Scanner s = new Scanner(System.in);
String str = s.next();
這時效果會變成:
這裡提下next和nextLine的區別:
next(): 當方法遇見第一個字元為有效字元(非空格、換行字元)時,開始掃描,當遇見第一個分割符或結束符(空格或換行符)時結束掃描。
反之第一個字元非有效字元,next()方法會自動將其之後的字元去掉。
簡單地說,next()方法返回的是來自此掃描器的下一個完整標記,完整標記的前後是與分隔模式匹配的輸入資訊,所以next方法不能得到帶空格的字串。
nextLine():方法的結束符是Enter鍵,即nextLine()方法返回的是Enter鍵之前的所有字元,它是可以得到帶空格的字串的。
相關推薦
java筆試題:用java實現字串壓縮演算法
題目:將字串 aaabcdda (可以從控制檯接收)程式設計實現將其轉換為 3a1b1c2d1a。 我的大致就這樣: System.out.print("請輸入一串字串:"); Scanner s = new Scanner(System.in); String str
java筆試題:找出3~999的水仙花數的三種實現方式
style col 展示 ava num get 實現 sys pack 第一種方式: package test; public class Exsercise { public static void main(String[] args) {
Java筆試題:給定一個ReadOnlyClass的對象roc,能否把這個對象的age值改成30?
acc 資料 謝謝 ble 技術 set exce turn 宋體 在Java筆試面試中,經常會遇到代碼題,今天我們就來看一則Java代碼筆試題。 有如下代碼: Class ReadOnlyClass { private Intege
java筆試題:隨機生成一個4位數字的年號,判斷是否是閏年?
技術 ring ima color 一個 sta string == pub 老規矩,直接上代碼: /** * 隨機生成一個4位數的年號,判斷概念是否為閏年並輸出相應的信息。 */ public static void LeapYear
java筆試題:判斷一個3~100之間的所有的素數?
java筆試題 int 打印 () als 註意 分享圖片 技術 sqrt 註意兩點:① 什麽是素數?② 如何利用計算機的方法去解決問題? public static void NumberDemo(){ int x = 0; System
JAVA筆試題:程式碼的輸出結果順序
class HelloA{ public HelloA() { System.out.println("I’m A class ");
java筆試題:關於short s1=1;s1=s1+1;short s1=1;s1+=1;short s3=s1+s2;中存在的簡單資料型別轉換問題的理解
面試題的內容大概是這樣:short s1=1;s1=s1+1;這兩句程式碼有什麼問題?short s1=1;s1+=1;這兩句程式碼有什麼問題?short s1=1,s2=1;short s3=s1+s2;這兩句程式碼有什麼問題? 下面我就對這三個問題按照自己的理解以及參考做出解釋: 解釋之
Java筆試題之《Java代碼查錯》
gin 參數 eth string oid java筆試題 protected -s 構造 Java代碼查錯 1.abstract class Name { private String name; public abstract boolean isStupidN
No.23 經典筆試題:用巨集來計算偏移量,判斷大小端(聯合體法,指標法)
寫一個巨集,計算結構體中某變數相對於首地址的偏移,並給出說明 判斷大小端 程式碼1: //寫一個巨集,計算結構體中某變數相對於首地址的偏移,並給出說明 //定義的這個巨集將結構體裡邊的變數的地址取出後再強轉成char型,然後進行相減。 //注意:&s
資料結構經典面試題:多種方法實現字串迴圈移位
來源:我是碼農,轉載請保留出處和連結! 本文連結:http://www.54manong.com/?id=12 問題描述: 要求在時間複雜度和空間複雜度分別為O(n)和O(1)的條件下把一個長度為N的字串迴圈左移M位,例如將長度為9的字串"12345
華為面試題:請編寫一個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。
#include<iostream> #include<stdio.h> #include<cstring> using namespace std; //void stringZip(const char *pInputStr, long lInputLen, char
java實現:2018年9月9日晚上的京東筆試題:現給出n個物品的a,b,c引數,請你求出不合格品的數量。
題目: 現有n個物品,每個物品有三個引數,ai,bi,ci,定義i物品不合格的依據是:若存在物品j,且aj>ai,bj>bi,cj>ci,則稱i物品為不合格品。 現給出n個物品的a,b,c引數,請你求出不合格品的數量。 輸入: 第一行包含一個整數n(1<=n&
java實現:2018年9月7日下午的科大訊飛筆試題:平安夜殺手
下邊是自己理解的解答,如果有問題歡迎指出。 java實現:2018年9月7日下午的科大訊飛筆試題:平安夜殺手 題目:(這裡是按照原題打字的) 有n個殺手排成一行,每一個殺手都有不同的編號(編號為1~n),在每個夜晚殺手都會行動,如果殺手編號大於他右邊的殺手的編號,他就會殺死他右邊的殺手,
劍指Offer面試題7(Java版):用兩個棧實現佇列與用兩個佇列實現棧
題目:用兩個棧實現一個佇列。佇列的宣告如下,請實現它的兩個函式appendTail和deletedHead,分別完成在佇列尾部插入節點和在佇列頭部刪除節點的功能。 我們通過一個具體的例子來分析該佇列插入和刪除元素的過程。首先插入一個元素a,不妨先把它插入到stack1,此時
年終總結:java筆試題49道 收藏版(含答案)
1、在Java EE中,Servlet是在伺服器端執行,以處理客戶端請求而做出的響應的程式,下列選項中屬於Servlet生命週期階段的是( ) A、載入和例項化 B、初始化 C、服務 D、銷燬 E、以上全部 答案:E 2、在Java EE中的MVC設計模式中,(
面試總結:用Java搞定二叉樹方面的面試題
package org.hunan.guan.javaIO; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; import java.util.List
Java面試題:有陣列a[n],用java程式碼將陣列元素順序顛倒
Official Certification 鄧 斌,Tony,男,漢族,江西興國人,無黨派,研究生學歷。畢業於中國科學技術大學精密機械資訊工程專業,於2008年取得中國科學技術大學高階軟體工程專業工學碩士學位。先後在國內外知名網際網路企業做過資深軟體開發工程師、高階系
java面試題:java中的單例設計模式及兩種實現方法的程式碼舉例
java面試時經常會問到關於單例設計模式,因為它能考察的知識點較多且在開發中經常用到。那我就來說一說我對於單例設計模式的一些淺見。首先,在Java中,什麼是單例呢?就是保證類在記憶體中只有一個物件。那麼
Java資料結構之——棧:用陣列實現
/** * This is an abstract data type interface for the stack. * This interface includes methods: * {@code pop},{@code push},{@code peek},{@code isEm
Java筆試題--比較兩字串
1、題目 給定兩個分別由字母組成的字串str1和字串str2,字串str2的長度比字串str1短,請問,如何最快地判斷字串str2中所有字母是否都在字串str1裡?例如,字串str1為“ABCD”,str2為“AC”,則返回true,因為字串str2中的字母A和B都在字串s