Java面試題--基本字串壓縮
題目描述
利用字元重複出現的次數,編寫一個方法,實現基本的字串壓縮功能。比如,字串“aabcccccaaa”經壓縮會變成“a2b1c5a3”。若壓縮後的字串沒有變短,則返回原先的字串。
給定一個string iniString為待壓縮的串(長度小於等於10000),保證串內字元均由大小寫英文字母組成,返回一個string,為所求的壓縮後或未變化的串。
測試樣例
"aabcccccaaa"
返回:"a2b1c5a3"
"welcometonowcoderrrrr"
返回:"welcometonowcoderrrrr"
import java.util.*; public class Zipper { public String zipString(String iniString) { // write code here int len = iniString.length(); final int maxn = 10010; int counts[] = new int[maxn]; char charlog[] = new char[maxn]; int index = 0; counts[index]++; charlog[index] = iniString.charAt(0); for(int i=1;i<len;i++) { if(iniString.charAt(i)==iniString.charAt(i-1)) { counts[index]++; }else { counts[++index]++; charlog[index] = iniString.charAt(i); } } String ansStr = ""; for(int i=0;i<=index;i++) { ansStr = ansStr + charlog[i]; ansStr = ansStr + counts[i]; } int Len = ansStr.length(); if(Len<=len) return ansStr; return iniString; } }
相關推薦
Java面試題--基本字串壓縮
題目描述 利用字元重複出現的次數,編寫一個方法,實現基本的字串壓縮功能。比如,字串“aabcccccaaa”經壓縮會變成“a2b1c5a3”。若壓縮後的字串沒有變短,則返回原先的字串。 給定一個string iniString為待壓縮的串(長度小於等於10000),保證串
java面試題之資料基本型別各佔幾個位元組
型別 位數 位元組數 short 2 16 char 2 16 int 4 32 float 4 32
Java演算法面試題(008) 字串反轉
簡介 這是一個Java面試中被經常問及的問題,也有很多種實現方式。我在這裡一一列出,如果你有更好的解法,也可留言。 解法一:首尾字元調換順序 由於String物件是隻讀型別,不能對其進行直接操作,因此需要轉換成字元陣列,然後調換字元陣列中的各個字元。 public St
Java面試題演算法篇尋找字串中最長的重複元素子串
package com.puhui.goosecard.web.utils; // Java program to find the maximum consecutive // repeating character in given string class GFG
Java---練習(面試題) :字串擷取(2-最終版)
在java中,字串“abcd”與字串“ab你好”的長度是一樣,都是四個字元。 但對應的位元組數不同,一個漢字佔兩個位元組。 定義一個方法,按照指定的位元組數來取子串。 如:對於“ab你好”,如果取三個位元組,那麼子串就是ab與“你”字的半個,那麼半個
字串--java面試題, 首個重複字串,二分查詢
對於一個字串,請設計一個高效演算法,找到第一次重複出現的字元。 給定一個字串(不一定全為字母)A及它的長度n。請返回第一個重複出現的字元。保證字串中有重複字元,字串的長度小於等於500。 測試樣例: "qywyer23tdd",11 返回:y public class FirstRepeat {
劍指offer--面試題28:字串的排列--Java實現
題目描述: 輸入一個字串,打印出該字串中字元的所有排列。例如輸入字串abc,則打印出由字元a、b、c所能排列出來的所有字串abc、acb、bac、bca、cab和cba。 解題思路: 我們求整個字串的排列,可以看成兩步,首先求可能出現在第一個位置上的字元,
基本字串壓縮(Java)
利用字元重複出現的次數,編寫一個方法,實現基本的字串壓縮功能。比如,字串“aabcccccaaa”經壓縮會變成“a2b1c5a3”。若壓縮後的字串沒有變短,則返回原先的字串。 給定一個string iniString為待壓縮的串(長度小於等於3000),保證串內字元均由大小寫英文字母組成,返回一個str
一道關於擷取字串的java面試題
下午看面試題時,看到一道關於擷取字串的。題目是這樣的: 程式設計:編寫一個擷取字串的函式,輸入為一個字串和位元組數,輸出為按位元組擷取的字串。 但是要保證漢字不被截半個,如“我ABC”4,應該截為“我AB”,輸入“我ABC漢DEF”,6,應該輸出為“我ABC”而不是“我ABC
基本字串壓縮Java實現
利用字元重複出現的次數,編寫一個方法,實現基本的字串壓縮功能。比如,字串“aabcccccaaa”經壓縮會變成“a2b1c5a3”。若壓縮後的字串沒有變短,則返回原先的字串。 給定一個str
Java面試題和解答(三)
增加 自旋 println class 答案 logs 聯網 get link 1、這段代碼大多數情況下運行正常,但是某些情況下會出問題。什麽時候會出現什麽問題?如何修正? public class MyStack { private List<S
java面試題
調用 strong 同步鎖 記錄 沒有 拋出異常 數據 sleep wait sleep()和wait()的區別 sleep是線程類的方法,它會讓出cpu去執行其他線程,當指定時間過後,會從新回到此線程上,但是雖然讓出了CPU ,並不會釋放對象鎖, wait是obje
java面試題一
情況 減少 元素 pro pin 內存大小 java_opts req -xms 個人的一點參考總結,如有雷同,純屬巧合! 1、hashmap的實現原理以及hashtable的線程安全是怎麽實現的?HashMap其實也是一個線性的數組實現的,所以可以理解為其存儲數據的容
java面試題-java基礎
runtime 都是 缺點 子類 true 大數 virtual 過程 面向連接 1.1java與其他語言相比,有什麽優點和缺點? 首先,java與c、c++相比,java是一種完全的面對對象的語言,雖然他的底層(運行時庫)使用c語言開發的,可是並不依賴於c,因為jav
Java(面試題):字符串截取
int lan out 試題 void trace 題目 replace odi 在Java中,字符串“abcd”與字符串“ab你好”的長度是一樣,都是四個字符。 但對應的字節數不同,一個漢字占兩個字節。 定義一個方法,按照指定的字節數來取子串。 如:對於“ab你好”,如果
Java面試題和解答(四)
aio sys main sina 數據 由於 ssd shm 檢測 1、JVM什麽情況下會GC,GC策略有哪些 當應用程序分配新的對象,GC的代的預算大小已經達到閾值,比如GC的第0代已滿;代碼主動顯式調用System.GC.Collect();其他特殊情況,比如,系統
100+經典Java面試題及答案解析
是什麽 自定義 我們 計數 接口類 同步方法 main err ans 面向對象編程(OOP) Java是一個支持並發、基於類和面向對象的計算機編程語言。下面列出了面向對象軟件開發的優點: 代碼開發模塊化,更易維護和修改。 代碼復用。 增強代碼的可靠性和靈活
java面試題2
pan ole light [0 -i att turn mat [] 1.冒泡排序 public static void test(){ int[] array = new int[]{1,4,5,8,9,34,4,32,65}; int tmp; for(
10個經典的Java面試題集合
支持 獲得 equal 效率 可用 ash 很快 鍵值對 shm 1.Java的HashMap是如何工作的? HashMap是一個針對數據結構的鍵值,每個鍵都會有相應的值,關鍵是識別這樣的值。 HashMap 基於 hashing 原理,我們通過 put ()和 g
Java面試題-線程安全
通過 釋放 運行時 ica work 面試題 條件 同時 strong 1. 什麽叫線程安全?servlet是線程安全嗎? 答:如果你的代碼所在的進程中有多個線程在同時運行,而這些線程可能會同時運行這段代碼。如果每次運行結果和單線程運行的結果是一樣的,而且其