精华内容
下载资源
问答
  • ABAP中,有时候需要判断一个字符串是否为数字,下面是常用的几种方法及注意事项: 1、可以利用NUMERIC_CHECK判断字串是否为数字并输出补零; 注意:利用function module NUMERIC_CHECK 检查字符串是否为数字时,...

    ABAP中,有时候需要判断一个字符串是否为数字,下面是常用的几种方法及注意事项:

    1、可以利用NUMERIC_CHECK判断字串是否为数字并输出补零;
          注意:利用function module  NUMERIC_CHECK 检查字符串是否为数字时,整数类型的是NUMC,小数类型则会被认为Char类型!

    DATA:lv_char1 TYPE c length 3 VALUE '100',

         lv_char2 TYPE n LENGTH 6,
         lv_type  TYPE dd01v-datatype.
    CALL FUNCTION ‘NUMERIC_CHECK’
    EXPORTING
    string_in  = lv_char1
    IMPORTING
    string_out = lv_char2
    htype      = lv_type.


    WRITE:lv_char1,lv_char2,lv_type.


    结果:100 000100 NUMC
    ————
    注意:
    1、小数类型数字检查结果是CHAR类型的。
       如下所示:


    DATA:lv_char1 TYPE c length 3 VALUE '0.100',
         lv_char2 TYPE n LENGTH 6,
         lv_type  TYPE dd01v-datatype.
    CALL FUNCTION ‘NUMERIC_CHECK’
    EXPORTING
    string_in  = lv_char1
    IMPORTING
    string_out = lv_char2
    htype      = lv_type.


    WRITE:lv_char1,lv_char2,lv_type.


    结果:0.1 0.100 char
    ————

    2、可以用正则表达式判断,也只能判断整数,如果MATCH = 'X',则为数字,如果为空,则不是数字类型,如下代码:

    DATA:MATCHER TYPE REF TO CL_ABAP_MATCHER.
    DATA:MATCH   TYPE C LENGTH 1.
    DATA:STR(10TYPE C.STR = '2323'.
    MATCHER = CL_ABAP_MATCHER=>CREATE( PATTERN     = '\d+'                                   TEXT        = STR ).
    MATCH = MATCHER->MATCH( ).

     

    3、也可以用另一种方法来判断是否为补获系统异常:把字符串赋值给I类型的变量;如果是字母,会触发一个异常;可据异常情况,断定是数字还是字母!

    展开全文
  • /*编写一个程序,检查是否一个给定的数字是一个特殊的号码,特殊的号码判断标准是该数字的因素只包括2,3,5,例如 数字6数字,8是特殊号码,14不是特殊号码,1被视特殊号码。*/ /*本程序我用定义的数组存的因数...

    /*编写一个程序,检查是否一个给定的数字是一个特殊的号码,特殊的号码判断标准是该数字的因素只包括2,3,5,例如 数字6数字,8是特殊号码,14不是特殊号码,1被视为特殊号码。*/


    /*本程序我用定义的数组存的因数,存在输入大整数因数过多导致无法判断的问题,思考一下如果要实现大整数判断,怎样修改代码*/

    import java.lang.Math;
    import java.util.Scanner;



    public class Solution1 {


    static int k=0;    // k仅仅定义为int行不行?
    static int []a=new int[1000];
    public static void main(String[] args) {


    Scanner sc=new Scanner(System.in);
    System.out.println("请输入一个整数:");
    int a=sc.nextInt();
    Panduan(a);
           
    }

    public  static void  Panduan(int N)
    {
    if(N<0)
            N=Math.abs(N);
    int M=N,i=2,j=0,flag=0;
    while(i<=M)  /*把输入的数的因数全部求出来,存到数组a[]中*/
    {

    if(M%i==0)
    {
    a[k]=i;
    k++;
    M=M/i;
      
    }
    else
    i++;
    }

    for(j=0;j<k;j++)/*只要有一个因素不符合2,3,5,flag将自增一并跳出循环,flag为判断是否是特殊号码的标志*/
    {
    if(a[j]!=3 && a[j]!=5 && a[j]!=2)
    {
    flag++;break;
    }


    }
    if(flag!=0)
    {
    System.out.println("不是");
    }
    else
    {
    System.out.println("是");
    }


    }
    }

    展开全文
  • 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步,...

    55. 跳跃游戏
    给定一个非负整数数组,你最初位于数组的第一个位置。
    数组中的每个元素代表你在该位置可以跳跃的最大长度。
    判断你是否能够到达最后一个位置。
    示例 1:
    输入: [2,3,1,1,4]
    输出: true
    解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。
    示例 2:
    输入: [3,2,1,0,4]
    输出: false
    解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。

    分析:

    指针i从倒数第二位往前遍历,n代表步数,初始为1,
    若nums[i]大于或等于n,说明从此位置可以跳到最后一位,并从此位置截断,此位置便为最后一位
    若nums[i]小于n,说明从此位置不能跳到最后一位,则n++,向前遍历查看其它位置是否能跳到最后一位,
    遍历到最后一位时步数大于1,说明跳跃游戏会失败,返回false,否则返回true.

    代码:

    public class LeetcodeTest {
    	public static void main(String[] args) {
    		Solution So = new Solution();
    		int[] nums = {2,3,1,1,4};
    		System.out.println(So.canJump(nums));
    	}
    }
    class Solution {
        public boolean canJump(int[] nums) {
        	int n = 1;
        	for(int i=nums.length-2; i>=0; i--){
        		if(nums[i] >= n){
        			n=1;
        		}else{
        			n++;
        		}
        		if(i==0 && n>1){
        			return false;
        		}
        	}
        	return true;
        }
    }

    45. 跳跃游戏 II
    给定一个非负整数数组,你最初位于数组的第一个位置。
    数组中的每个元素代表你在该位置可以跳跃的最大长度。
    你的目标是使用最少的跳跃次数到达数组的最后一个位置。
    示例:
    输入: [2,3,1,1,4]
    输出: 2
    解释: 跳到最后一个位置的最小跳跃数是 2。
    从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
    说明:
    假设你总是可以到达数组的最后一个位置。

    分析:

    要使用最少的跳跃次数到达数组的最后一个位置,那就要在每一步都寻找最优的跳法,最终就会得到全局最优的跳法。
    在每一个跳到的位置上先判断能否直接跳到最后一个位置,如果能,那么这一步就是当前最优的,
    如果不能,就去寻找下一步的最优位置,找到之后再跳过去。
    下一个最优的地方即下一个可以跳最大步数的地方,即下面代码中nums[j]最大。

    代码:

    public class LeetcodeTest {
    	public static void main(String[] args) {
    		Solution So = new Solution();
    		int[] nums = {2,3,1,1,4};
    		System.out.println(So.jump(nums));
    	}
    }
    class Solution {
        public int jump(int[] nums) {
        	int i=0;
            int res = 0;
            while(i<nums.length-1){
            	int steps = nums[i];
            	//最后一步是个特例,不需要寻找下一个位置,如果能在此时跳到最后一个位置,这一步就是最优的。
            	if(steps>=nums.length-1-i){
            		res++;
            		break;
            	}
            	//跳到下一个最优的地方
            	int max = nums[i+1];//记录最大步数
            	int index = i+1;//记录索引
            	for(int j=index; j<=i+steps && j<nums.length-1; j++){
            		if(nums[j]+j-index >= max){
            			max = nums[j];
            			index = j;
            		}
            	}
            	res++;
            	i = index;
            }
            return res;
        }
    }

     

    展开全文
  • 给你一个整数数组 nums 和一个整数 k,请你判断是否可以把这个数组划分成一些由 k 个连续数字组成的集合。 如果可以,请返回 True;否则,返回 False。 现在做了几十到贪心算法之后,发现贪心策略并不难找,而是用...

    给你一个整数数组 nums 和一个正整数 k,请你判断是否可以把这个数组划分成一些由 k 个连续数字组成的集合。
    如果可以,请返回 True;否则,返回 False。

    现在做了几十到贪心算法之后,发现贪心策略并不难找,而是用什么样数据结构,以及怎样用数据实现贪心逻辑,所以以后贪心算法我分为三部分讲解

    贪心策略:讲解本题解题思路
    数据结构:介绍本题会用到几组数据,分别什么类型,普遍作用。
    代码:几组数据如何,相互协作,完成逻辑

    贪心策略:

    1. 以112233 k=3为例,发现开始的最小值i总是和,i+1~i+k-1有一定的数量关系,i+1 ~i+k-1的数量必定要大于等于i的数量
    2. 所以我们总是,从小到大排列,检查i+1~i+k-1的剩余数量是否大于i的剩余数量,如果否,则必定不成立

    数据结构:

    1. 一个Counter:生成初始每个及对应数字数量和修改剩余量
    2. 一个列表:有小到大(无重复)数字

    代码:

    class Solution:
        def isPossibleDivide(self, nums: List[int], k: int) -> bool:
        #生成初始每个及对应数字数量和修改剩余量
            s = collections.Counter(nums)
            #有小到大(无重复)数字
            ordered_nums = sorted(s)
            #检查,修改剩余量
            for num in ordered_nums:
                occ = s[num]
                if s[num] > 0:
                    for i in range(num + 1, num + k):
                        if s[i] >= occ:
                            s[i] -= occ
                        else:
                            return False
            return True
    
    展开全文
  • 在一定范围的整数中9出现的次数 首先考虑怎样获取1-100中9出现的次数,...判断个位和十位上的数是否为9,若为9就使计数器增1,反之,则不增。实现程序如下: #define _CRT_SECURE_NO_WARNINGS #include&lt;stdi...
  • LeetCode 202——快乐

    2019-10-19 17:27:50
    编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义:对于一个正整数,每一次将该数替换它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果...
  • 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 模拟ATM(自动柜员机...
  • C#LeetCode刷题之#15-三之和(3Sum)

    万次阅读 2018-11-15 23:46:22
    给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个位置。 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, ...
  • 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个位置。 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, ...
  • 如果你变量var赋值为一个字符串,那么它变成了一个字符串。如果你又它赋了整数值,那么它就变成了整数。" $foo = "0"; // $foo是字符串(ASCII 48) $foo++; // $foo是字符串"1" (ASCII 49) $foo += 1; // $foo...
  • 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从...
  • 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步...
  • 你必须知道的495C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    3.15 我要检查一个数是不是在另外两个数之间,什么if(abc)不行? 3.16 什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); ...
  • 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个下标。 示例 1: 输入:nums = [2,3,1,1,4] 输出:true 解释:可以先...
  • 两个质数的和是S,它们的积最大是多少? Input 一个不大于10000的正整数S,两个质数的和。 Output 一个整数两个质数的最大乘积...主要是要会怎样判断一个数是否是质数! import java.util.Scanner; pub...
  • 1.二叉树三种周游(traversal)方式: 3.如何判断一棵二叉树是否是平衡二叉树 4.设计一个算法,找出二叉树上任意两...7.怎样编写一个程序,把一个有序整数数组放到二叉树中? 8.判断整数序列是不是二叉搜索树的后序
  • 素数筛法

    2013-12-16 18:20:00
    1. 怎样判断一个数是素数 最直接的判断某个正整数是否是素数的方法是考察这个数是否有小于它本身且大于1的约数,实际上只需考察它是否有大于1且不大于它的算数平方根的约数即可。 素数还有一个特点,就是除2以外...
  • 算法练习集锦()

    千次阅读 2019-02-23 22:51:12
    给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个位置 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1...
  • 《你必须知道的495C语言问题》

    热门讨论 2010-03-20 16:41:18
    3.15 我要检查一个数是不是在另外两个数之间,什么if(a b c)不行? 40 3.16 什么如下的代码不对?int a=1000, b=1000; long int c=a * b; 40 3.17 什么下面的代码总是给出0?double degC, degF; degC= ...
  • 每日题@44跳跃游戏

    2020-09-25 16:20:30
    给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从...
  • 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从...
  • 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从...
  • 打印200-300之间素数的小程序

    千次阅读 2019-03-17 20:03:40
    首先我们要了解,怎样判断一个数是否为素数。所为素数,又称质数。是指除了 1 和它本身以外,不能被任何整数整除的数。这里提供一个思路,假设我们要判断数m是不是一个素数,只需把 m 与2 - m-1 之间的每一个整数...
  • 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从...
  • 题目描述:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断是否能够到达最后一个位置。 实例1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 402
精华内容 160
关键字:

怎样判断一个数是否为整数