簡介:日期題結(jié)合字符串的處理
2020 年春節(jié)期間,有一個特殊的日期引起了大家的注意:2020 年 2 月 2 日。因為如果將這個日期按 “yyyymmdd” 的格式寫成一個 8 位數(shù)是 20200202,恰好是一個回文數(shù)。我們稱這樣的日期是回文日期。
有人表示 20200202 是 “千年一遇” 的特殊日子。對此小明很不認(rèn)同,因為不到 2 年之后就是下一個回文日期:20211202 即 2021 年 12 月 2 日。
也有人表示 20200202 并不僅僅是一個回文日期,還是一個 ABABBABA 型的回文日期。對此小明也不認(rèn)同,因為大約 100 年后就能遇到下一個 ABABBABA 型的回文日期:21211212 即 2121 年 12 月 12 日。算不上 “千年一遇”,頂多算 “千年兩遇”。
給定一個 8 位數(shù)的日期,請你計算該日期之后下一個回文日期和下一個 ABABBABA 型的回文日期各是哪一天。
輸入描述輸入包含一個八位整數(shù) NN,表示日期。
對于所有評測用例,10000101≤N≤8999123110000101≤N≤89991231,保證 NN 是一個合法日期的 8 位數(shù)表示。
輸出描述輸出兩行,每行 1 個八位數(shù)。第一行表示下一個回文日期,第二行表示下一個 ABABBABA 型的回文日期
輸入
20200202
輸出
20211202
21211212
這道題是隨日期的變化,找出符合題意的回文數(shù)(字符串)
首先:日期的變化,就可以用之前我專欄里面寫到的java日期模擬器
其次,日期變化解決后,解決的是字符串問題
字符串問題的判斷就在check函數(shù)中去寫語句(取字串,字符串反轉(zhuǎn),字符串相等的判斷)
二、代碼 1.日期模擬部分代碼如下(示例):
//月份表 ?? ??? ?static int w[]=new int[]{0,31,28,31,30,31,30,31,31,30,31,30,31}; ?? ??? ?static int y,m,d; ?? ??? ?static String s11; ?? ?public static void main(String[] args) { ?? ??? ?// TODO Auto-generated method stub ?? ??? ?String s1 = null,s2=null; ?? ??? ?boolean flag=true,flagg=true; ?? ??? ?Scanner scanner=new Scanner(System.in); ?? ??? ?String string=scanner.next(); ?? ??? ?y=Integer.parseInt(string.substring(0,4)); ?? ??? ?m=Integer.parseInt(string.substring(4,6)); ?? ??? ?d=Integer.parseInt(string.substring(6)); ?? ??? ?String mmmString=null,dddString=null; ?? ??? ?while(flag||flagg) { ?? ??? ??? ?if(y%4==0&&y%100!=0||y%100==0&&y%400==0) {//判斷閏年 ?? ??? ??? ??? ?w[2]=29; ?? ??? ??? ?}else { ?? ??? ??? ??? ?w[2]=28; ?? ??? ??? ?} ?? ??? ??? ?d++; ?? ??? ??? ?if(d>w[m]) { ?? ??? ??? ??? ?m++; ?? ??? ??? ??? ?d=1; ?? ??? ??? ?} ?? ??? ??? ?if(m>12) { ?? ??? ??? ??? ?y++; ?? ??? ??? ??? ?m=1; ?? ??? ??? ?} ?? ??? ??? ?if(m>=10) { ?? ??? ??? ??? ? mmmString=Integer.toString(m); ?? ??? ??? ?}else { ?? ??? ??? ??? ? mmmString="0"+Integer.toString(m); ?? ??? ??? ?} ?? ??? ??? ?if(d>=10) { ?? ??? ??? ??? ? dddString=Integer.toString(d); ?? ??? ??? ?}else { ?? ??? ??? ??? ? dddString="0"+Integer.toString(d); ?? ??? ??? ?} ?? ??? ??? ?s11=Integer.toString(y)+mmmString+dddString;; ?? ??? ??? ?if(flag) { ?? ??? ??? ?if(check()) { ?? ??? ??? ??? ?s1=Integer.toString(y)+mmmString+dddString; ?? ??? ??? ??? ?flag=false; ?? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?if(flagg) { ?? ??? ??? ??? ?if(check2()) { ?? ??? ??? ??? ??? ?s2=Integer.toString(y)+mmmString+dddString; ?? ??? ??? ??? ??? ?flagg=false; ?? ??? ??? ??? ?} ?? ??? ?} ?? ??? ?} ?? ??? ?System.out.println(s1); ?? ??? ?System.out.println(s2); ?? ?}2.check函數(shù)部分
代碼如下(示例):
static boolean check() { ?? ??? ?String left=s11.substring(0,4),rigt=s11.substring(4); ?? ??? ?StringBuilder sb=new StringBuilder(rigt); ?? ??? ?rigt=sb.reverse().toString(); ?? ??? ?if(left.equals(rigt)) { ?? ??? ??? ?return true; ?? ??? ?}else { ?? ??? ?return false; ?? ??? ?} ?? ?} ?? ?static boolean check2() { ?? ??? ?if(check()) { ?? ??? ??? ?String left1=s11.substring(0,2), left2=s11.substring(2,4),rigt1=s11.substring(4,6), rigt2=s11.substring(6); ?? ??? ??? ?if(left1.equals(left2)&&rigt1.equals(rigt2)) { ?? ??? ??? ??? ?return true; ?? ??? ??? ?}else { ?? ??? ??? ??? ?return false; ?? ??? ??? ?} ?? ??? ??? ? ?? ??? ?}else { ?? ??? ??? ?return false; ?? ??? ?} ?? ?}
=========================================================================
由感而寫的,謝謝!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享文章:藍橋--回文日期-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://m.rwnh.cn/article46/cecheg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、品牌網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、建站公司、云服務(wù)器、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)