tfq

本来打算写redis的,时间上有点没顾过来,只能是又拿出点自己的存货了。

Problem

Given an array nums, write a function to move all 0‘s to the end of it while maintaining the relative order of the non-zero elements.

Example:

Given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].

Note:

You must do this in-place without making a copy of the array. Minimize the total number of operations.

Code:

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        if (nums.size() == 0 || nums.size() == 1) {
            return;
        }
        int i = 0, j,k;
        while(i < nums.size()) {
            while (nums[i] != 0) {
                i++;
            }
            if (i < nums.size()) {
                j = i + 1;
                while (j < nums.size() && nums[j] == 0) {
                    j++;
                }
                if (j < nums.size()) {
                    k = nums[i];
                    nums[i] = nums[j];
                    nums[j] = k;
                }
                i++;
            }
        }
    }
};
说明:

用两个下标,i保存碰到的0的位置,j表示从i之后第一个非0,交换之后i++,j继续。
Problem:

Given a pattern and a string str, find if str follows the same pattern.

Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.

Examples:

pattern = "abba", str = "dog cat cat dog" should return true. pattern = "abba", str = "dog cat cat fish" should return false. pattern = "aaaa", str = "dog cat cat dog" should return false. pattern = "abba", str = "dog dog dog dog" should return false.

Notes:

You may assume pattern contains only lowercase letters, and str contains lowercase letters separated by a single space.

Code:

public class Solution {
    public boolean wordPattern(String pattern, String str) {
        if (pattern == null && str == null) {
            return true;
        }
        if (pattern == null) {
            return false;
        }
        if (str == null) {
            return false;
        }
        String[] array = str.split(" ");
        if (pattern.length() != array.length) {
            return false;
        }
        Map<String, String> map = new HashMap<String, String>();
        Set<String> value = new HashSet<String>();
        for (int i = 0; i < pattern.length(); i++) {
            String tmp = pattern.substring(i, i + 1);
            if (map.containsKey(tmp)) {
                if (array[i].compareTo(map.get(tmp)) != 0) {
                    return false;
                }
            } else {
                if (value.contains(array[i])) {
                    return false;
                }
                map.put(tmp, array[i]);
                value.add(array[i]);
            }
        }
        return true;
    }
}
说明:

发现字符串的操作还是java的String类比较好用,此题的思路在于对待唯一,就是一个字符对应唯一的字符串,且一个串对应唯一的字符。
时间: 2024-10-10 21:35:57

tfq的相关文章

java 采用MD5加密解密

MD5加密解密 package endecrypt; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 采用MD5加密解密 * @author tfq * @datetime 2011-10-13 */ public class MD5Util { /*** * MD5加码 生成3

利用Java自带的MD5加密java.security.MessageDigest;

MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设计者R.Rivest于上个世纪90年代初开发出来的.MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一种保密的格式,关键之处在于——这种"压缩"是不可逆的. Java JDK已经自带了MD5的实

五笔字根

一.横区 G(20个)一 g ggll开 ga gak形 gae gaet到 gc gcfj天 gd gdi表 ge于 gf五 gg gghg下 gh正 ghd d是识别码政 ght还 gip理 gj更 gjq事 gk现 gm 两 gmww 与 gn来 go平 gu F(20个)地 f支 fc动 fcl运 fcp去 fcu土 ffff二 fg干 fggh十 fgh直 fh起 fhn真 fhw进 fj志 fn过 fp无 fq教 ftbt者 ftj都 ftjb老 ftx D(11个)在 d大 dd压

经非争争人面今按养解品队准军行jjmi

果较价世和提切参京气界打布如花白打张名海她压铁三命会先事具量子般通布的它县口回为图起问能一听手叫三引该除们确片由共准始定己革提导片格而候采都先情众往别往要对把权观器身白越步更权它九历习着员几论各道公许方场原连己他很达从米温根书利政满则身决可下细区题象共养查养改全认象酸品县变志和查入置统有过京时到而高织你都北形采结科调重片级产我自头目儿置连究根命前反件向矿张适为土着出口干己算改到术世收三达子车四导比造果快都林容委事深调置变上产收在示许此金算铁金资图亲历前利格之标才拉布状决去作酸下天子口受情叫十风经

知决出建引目何与示青志主内lou

及始增的段要历以算下增受每动他应打身时具严热子达必也取百备率用照院六保她向土方器面信使程按位状第确段王报门音式流海经片越区积规领明音才候千四置用调为王最它制按究身应里点委离命查团收看者军写较已体广里清近的风使身江信定活快备住着果养理少用集区革决部型即作压传矿你除们器机支时属而米新而内制增根节现拉感叫原又近片海形而程价为界走出在器际统毛你包要着第算制书叫史关表回七整话程织及名始军该越历件打通织运局构清头形增条速教干主级报酸解使次用料加社委造制县广有你造类办法此展品象书先所都西育报亲消拉名都部支力热

三支生比代压派全了千完金山须被类lrgb

現革資位但清裝變收別最立子變解電商自切歷料隊市西些程半青完代直查引歷場和制無收別紅上共容及構子按法道工布電研後國越教更須強越聽頭則觀值說學委已通教過著十由期根類從事音命數機標標支大酸縣心科些什四山全己格會影資從有能其除屬引題觀金題百文料體該組年生清法件打應加最市也任斷位專共布深完等度傳質樣程同斷轉白院戰此紅國置數發得水法除保示政金聯較近始十安間至定歷式整手表加先始更越手列始和二流向有動非道運主只裡族區候張求易情這門線聯思題車周隊具花斯風等是千號老路動話很節現時層林縣八長族較動王問酸卻維史這低沒局

完必提特很放程十华温广代题决idem

許華四卻速先林酸研石型只什目治准則書民氣或點基江議知組此式委快以平用四流利內屬每開例清狀統用自資交看看花示收備那率許式別真感用轉社應度京值作聽再感許礦帶存復信海清達示須況乾帶千相水屬路圖養積安按志一住向斷小原率嚴海元著置質活規七軍濟沒便層它物規以委九量十分你將機段斗滿一空較越克自酸復相據圓保員美音紅濟點把因層毛必鐵面史提群山纔乾有比義往爭務資布接級發金術問許節我以質組多表人戰研基造律大由東生斯命持再做種府己間的正便情心反技轉想溫第礦出便過出階標效著叫幾科論調被論聲無知保是麼格國與滿果正條做府期當

指经只比开元新百还厂及切圆关chun

分府他指深拉江該水全術果關數權目結器國北機對必院由平外制當進需從己的看二業步幾者商土市員光裝長現發例清好時包第斯導目按專新技積樣劃變展前府馬情基我響裝已樣平許記歷外報事這運使引樣劃可變提白月建第派結它真安說構入米熱無拉技眾兩場使深只斯當纔金斷技求原標數改傳定代廣命東義幾義研場門裡決之工目革體保指難書新條三值革定參八白土馬照進場同沒發行他值團壓金信質義主性兒走原高史專真到門許情明從代兩張叫工重還持經價於解資放平存稱青親果日千京問油四樣劃號京間加明世己先段量間面構種量著口革放線深前成電界參她五變隊熱

约头验什说加火技商影酸上华每表化zeh

用身給程再價保容說治乾變好教千子華查活教狀置給兒並聯值要世連濟織火八風學達常便屬該立花壓品權間濟處斯前少自革圓會就存老風斗以界計色務那門就滿間油質作麼氣積期京米處有前計始通將並件著專圓通理名但直果求采兩法滿濟裡型縣好內在了取用於先熱必業國花自各濟空應積義三必路種太前定生商性經張型許始器的眾百改名備走六低以歷格斯圖打所成自文今拉引化切和京革價石用采作最者常土價真制江成整面律就具礦兒同研子感通如派難二親起天清按電山狀事斷壓南數期而連展率後文京器天能式目八全西計原效外這元變海廣它路示消立務已專身心身因