日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编程判断元素归类_编程练习-判断是否为易混淆数

發布時間:2025/3/11 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程判断元素归类_编程练习-判断是否为易混淆数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目來源:LeetCode

給定一個數字 N,當它滿足以下條件的時候返回 true:

把原數字旋轉180°以后得到新的數字。

如 0, 1, 6, 8, 9 旋轉 180° 以后,得到了新的數字 0, 1, 9, 8, 6 。

2, 3, 4, 5, 7 旋轉 180° 后,得到的不是數字。

易混淆數字 (confusing number) 就是一個數字旋轉180°以后,得到和原來不同的數字,且新數字的每一位都是有效的。

示例 1:

6 -> 9

輸入:6

輸出:true

解釋: 把 6 旋轉 180° 以后得到 9,9 是有效數字且 9!=6 。

示例 2:

89 -> 68

輸入:89

輸出:true

解釋: 把 89 旋轉 180° 以后得到 68,86 是有效數字且 86!=89 。

示例 3:

11 -> 11

輸入:11

輸出:false

解釋:把 11 旋轉 180° 以后得到 11,11 是有效數字但是值保持不變,所以 11 不是易混淆數字。

提示:

0 <= N <= 10^9

可以忽略掉旋轉后得到的前導零,例如,如果我們旋轉后得到 0008 那么該數字就是8。

分析

題目中已經明確提示,哪些數字(0-9)旋轉后是有效的,因此第一步就需要判斷給定的整數中是否包含旋轉無效的數字;

最后的提示很重要,如果旋轉后前面連續的0位,可以忽略,既然這樣,只要旋轉后第一位是0的,都不會和原整數相等。

旋轉不單單是單個數字的旋轉,最后整個數字也會前后倒置。

將整數轉為字符串要方便許多,因為可以直接取相應位。

流程圖:

實現(java)

package com.jiajia.m4;

import java.util.HashMap;

/**

* @ClassName: ConfusingNumber

* @Author: fanjiajia

* @Date: 2019/4/27 上午10:06

* @Version: 1.0

* @Description:

*/

public class ConfusingNumber {

public static void main(String[] args) {

ConfusingNumber c = new ConfusingNumber();

int test_num = 89;

System.out.println(c.confusingNumber(test_num));

}

public boolean confusingNumber(int N) {

String str_N = String.valueOf(N); // 將數字轉為字符串,方便處理

// 定義相應數字字符旋轉后的字符映射

HashMap map = new HashMap() {

{

put('0', '0');

put('1', '1');

put('6', '9');

put('8', '8');

put('9', '6');

}

};

/**

* 先判斷其中是否包含不滿足旋轉的字符

*/

for(int i = 0; i < str_N.length(); i++) {

if(!map.containsKey(str_N.charAt(i))){ // 通過map的key進行判斷

return false;

}

}

/**

* 接下來判斷旋轉后的數字是否等于原來的數字

*/

if((str_N.charAt(str_N.length() - 1) == '0') && str_N.length() > 1) {

// 如果最后一位是0 ,則說明旋轉后的數字一定不等于原來的數字

return true;

}

char[] arr = new char[str_N.length()]; // 旋轉后的字符串

for(int i = str_N.length() - 1; i >= 0; i--) {

arr[(str_N.length() -1) - i] = map.get(str_N.charAt(i));

}

String temp = String.valueOf(arr);

if(temp.equals(str_N)) {

return false;

}

return true;

}

}

最后

可以直接利用map的key做contains判斷,之前還單獨聲明了一個list做contains判斷,哎,真的菜;

此致,敬禮

總結

以上是生活随笔為你收集整理的编程判断元素归类_编程练习-判断是否为易混淆数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。