1021. 个位数总结 (15)

给定一个k位整数N = dk-110k-1 + … + d1101 + d0 (0<=di<=9,
i=0,…,k-1,
dk-1>0),请编写程序总结每种不同的个位数字出现的次数。例如:给定N =
100311,则有2个0,3个1,和1个3。

前言

输入格式:

每个输入包含1个测试用例,即一个不超越1000位的正整数N。

这几天在修补一个web问题时,需要捕获Mac触摸板双指事件(上、下、左、右、放大、收缩),但意识并从未现成的车轮,依旧要团结造。

输出格式:

对N中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在N中出现的次数M。要求按D的升序输出。

比如:jquery.mousewheel.js(添加跨浏览器的鼠标滚轮扶助),
给得太简单,没有拍卖Mac双指作为,所以不可能用。

输入样例:

100311

目标

输出样例:

0:2
1:3
3:1

这题很简短没怎么可说的,上边贴出自己的代码

赢得Mac触摸板双指作为,具体有多少个,一个是实时拖动路线,二是手势(上、下、左、右、放大、缩短)。

代码如下

#include<iostream>
#include<vector>
using namespace std;
int main(){
    string num;
    vector<int> geweishu(10,0);
    cin>>num;
    for(auto b=num.begin();b<num.end();b++)
    geweishu[*b-'0']++;
    for(int i=0;i<10;i++)
    if(geweishu[i]!=0) cout<<i<<":"<<geweishu[i]<<endl;
    return 0;
}

如有指正,不望吝啬,谢谢

难点

双指作为只会触发mousewheel事件,其他什么的touch,mouse都不会接触,只好从这一个入手。

双指特性

1.在连忙滑动过程中,deltaX、deltaY值的初期值的正负是与滑动方向不同的。

2.在缓缓滑动过程中,deltaX、deltaY值的值域是可怜小的,一般在于[-3,
3]。

3.在1s内,mousewheel事件大概触发100次左右。

4.滑行过程中,数值会有震动问题。

落实拖动路线思路(Path)

针对高速滑动

1.deltaX、deltaY值的最初值的正负是与滑动方向不同的这部分数目要抛弃。(因为不是的确方向)

2.老是触发的deltaX、deltaY值两两相减,结果值假如与方向不同,则丢弃。

3.剩下的差值就是方向移动距离。

4.七个方向的保有差值相加,共两组,哪组值大取哪组,正负决定方向。

本着缓慢滑动

1.是因为deltaX、deltaY值的值域是老大小,所以都保留,但值与方向不同的,也放任。

2.三个样子的所有差值相加,共两组,哪组值大取哪组,正负决定方向。

落实手势思路(Gesture)

在上头的根基上,记录一段时间内deltaX、deltaY和两两差值:

deltaX、deltaY用来总括放大、缩小手势。

两两差值用来总结上、下、左、右手势。

于是,手势是一段时间的手势,而不是某个时刻的。

实现代码

具体代码就不贴出来,可直接在自我Github下载:https://github.com/codingforme/jquery-mac-mousewheel

总结

路线问题:mousewheel给予的deltaX、deltaY值跟操作效能有挺大不同,飞快滑动效果特别不确切。

手势问题:由于双指特性的第三点,手势实现不能准确,即便是把日子段变得很短,但因为数据量问题(不能用微积分的思路),会变得更不可靠;把时光段变长,反应时长又会变长;

切实功能可以下代码来看望,效果不大惬意,但可以下载看看,有更好的方案,请告知我,跪谢。